我正在尝试通过Pyarrow连接到HDFS,但由于无法加载libhdfs库而无法工作。
libhdfs.so既在$HADOOP_HOME/lib/native中,也在$ARROW_LIBHDFS_DIR中。
print(os.environ['ARROW_LIBHDFS_DIR'])
fs = hdfs.connect()
bash-3.2$ ls $ARROW_LIBHDFS_DIR
examples libhadoop.so.1.0.0 libhdfs.a libnativetask.a
libhadoop.a libhadooppipes.a libhdfs.so libnativetask.so
libhadoop.so libhadooputils.a libhdfs.so.0.0.0 libnativetask.so.1.0.0我得到的错误是:
Traceback (most recent call last):
File "wine-pred-ml.py", line 31, in <module>
fs = hdfs.connect()
File "/Users/PVZP/Library/Python/2.7/lib/python/site-packages/pyarrow/hdfs.py", line 183, in connect
extra_conf=extra_conf)
File "/Users/PVZP/Library/Python/2.7/lib/python/site-packages/pyarrow/hdfs.py", line 37, in __init__
self._connect(host, port, user, kerb_ticket, driver, extra_conf)
File "pyarrow/io-hdfs.pxi", line 89, in pyarrow.lib.HadoopFileSystem._connect
File "pyarrow/error.pxi", line 83, in pyarrow.lib.check_status
pyarrow.lib.ArrowIOError: Unable to load libhdfs发布于 2020-08-26 17:09:03
这解决了我的问题:
conda install libhdfs3 pyarrow在您的script.py中:
import os
os.environ['ARROW_LIBHDFS_DIR'] = '/opt/cloudera/parcels/CDH/lib64/'其中路径是libhdfs3所在的目录-在我的示例中,这是Cloudera托管库的位置
https://stackoverflow.com/questions/53087752
复制相似问题