4

尝试使用 pyarrow 访问 hdfs 文件但无法正常工作,下面是代码,非常感谢您。

[rxie@cedgedev03 code]$ python
Python 2.7.12 |Anaconda 4.2.0 (64-bit)| (default, Jul 2 2016, 17:42:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://anaconda.org

import pyarrow
import os
os.environ["JAVA_HOME"]="/usr/java/jdk1.8.0_121"
from pyarrow import hdfs
fs = hdfs.connect()

回溯(最后一次调用):文件“”,第 1 行,文件“/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,第 183 行,连接 extra_conf =extra_conf) 文件“/opt/cloudera/parcels/Anaconda/lib/python2.7/site-packages/pyarrow/hdfs.py”,第 37 行,在 init self._connect(host, port, user, kerb_ticket, driver, extra_conf)文件“pyarrow/io-hdfs.pxi”,第 89 行,在 pyarrow.lib.HadoopFileSystem._connect 文件“pyarrow/error.pxi”,第 83 行,在 pyarrow.lib.check_status pyarrow.lib.ArrowIOError:无法加载 libhdfs

4

1 回答 1

1

您可能需要手动定位此文件并使用ARROW_LIBHDFS_DIR环境变量指定它。

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

ARROW_LIBHDFS_DIR然后,使用设置为此路径的环境变量重新启动 Python REPL 。就我而言,我的命令如下所示:

ARROW_LIBHDFS_DIR=/opt/mapr/hadoop/hadoop-0.20.2/c++/Linux-amd64-64/lib python

这应该可以解决这个特殊问题。

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

于 2020-07-06T04:39:35.757 回答