使用Python3与HDFS交互的最佳模块是什么?

Far*_*hat 14 hdfs python-3.x python-hdfs

我看到有hdfs3,snakebite和其他一些.哪一个是最好的支持和全面的?

Fal*_*ler 8

pyarrow,apache arrow的python实现有一个维护良好且记录良好的HDFS客户端:https://arrow.apache.org/docs/python/filesystems.html


小智 7

据我所知,可能没有想象的那么多。但是我建议使用官方的Python软件包hdfs 2.0.12,可以通过运行以下命令从网站下载或从终端下载:

pip install hdfs
Run Code Online (Sandbox Code Playgroud)

一些功能:

  • WebHDFS(和HttpFS)API的Python(2和3)绑定,支持安全和不安全的群集。
  • 命令行界面,用于传输文件并启动交互式客户端外壳,其别名具有方便的namenode URL缓存的别名。
  • 通过可选扩展名的附加功能:avro,直接从HDFS读取和写入Avro文件。数据框,以加载和保存Pandas数据框。kerberos,以支持Kerberos身份验证的集群。


rie*_*ann 6

我曾尝试过snakebite,hdfs3和hdfs.

Snakebite只支持下载(不上传),所以不适合我.

在这3个中只有hdfs3支持HA设置,所以这是我的选择,但是我没有设法让它与使用datanode主机名的多宿主网络一起工作(这里描述的问题:https://rainerpeter.wordpress.com/2014/ 02/12/connect-to-hdfs-running-in-ec2-using-public-ip-addresses /)

所以我最终使用hdfs(2.0.16),因为它支持上传.我不得不使用bash添加一些解决方法来支持HA.

PS.有一篇有趣的文章比较了为与Hadoop文件系统交互而开发的Python库,网址http://wesmckinney.com/blog/python-hdfs-interfaces/