首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pyarrow时无法加载libhdfs

使用pyarrow时无法加载libhdfs
EN

Stack Overflow用户
提问于 2018-11-01 00:11:20
回答 1查看 8.5K关注 0票数 9

我正在尝试通过Pyarrow连接到HDFS,但由于无法加载libhdfs库而无法工作。

libhdfs.so既在$HADOOP_HOME/lib/native中,也在$ARROW_LIBHDFS_DIR中。

代码语言:javascript
复制
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

我得到的错误是:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2020-08-26 17:09:03

这解决了我的问题:

代码语言:javascript
复制
conda install libhdfs3 pyarrow

在您的script.py中:

代码语言:javascript
复制
import os
os.environ['ARROW_LIBHDFS_DIR'] = '/opt/cloudera/parcels/CDH/lib64/'

其中路径是libhdfs3所在的目录-在我的示例中,这是Cloudera托管库的位置

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53087752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档