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

时间:2018-09-06 13:34:04

标签: dask pyarrow

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

  

ImportError:找不到共享库:libhdfs3.so

From the documentation 似乎有使用pyarrow的选项。

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

1 个答案:

答案 0 :(得分:0)

尝试使用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

接下来,当您创建纱线群集时,将此变量作为辅助参数传递:

# 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启发)