使用 dask 和 pyarrow 从 hdfs 读取 csv 文件



我们正在尝试dask_yarn 0.3.0版本(dask 0.18.2( 由于我运行的 boost-cpp 与 0.10.0
版本pyarrow冲突,我们正在尝试从 hdfs 读取 csv 文件 - 但是我们在运行dd.read_csv('hdfs:///path/to/file.csv')时出现错误,因为它正在尝试使用 hdfs3。

导入错误:找不到共享库:libhdfs3.so

从文档中似乎有一个选项 使用pyarrow.

这样做的正确语法/配置是什么?

尝试使用locate -l 1 libhdfs.so查找文件。就我而言,该文件位于/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib.

然后,使用环境变量ARROW_LIBHDFS_DIR此路径重新启动 Jupyter 服务器。就我而言,我的命令如下所示:

ARROW_LIBHDFS_DIR=/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib jupyter lab --port 2250 --no-browser

接下来,在创建 Yarn 集群时,将此变量作为工作器参数传递:

# Create a cluster where each worker has two cores and eight GiB of memory
cluster = YarnCluster(
worker_env={
# See https://github.com/dask/dask-yarn/pull/30#issuecomment-434001858
'ARROW_LIBHDFS_DIR': '/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib',
},
)

这为我解决了问题。

(灵感来自 https://gist.github.com/priancho/357022fbe63fae8b097a563e43dd885b(

相关内容

  • 没有找到相关文章

最新更新