尝试使用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”, 连接Extra_conf = extra_conf中的第183行)文件 “ /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
答案 0 :(得分:0)
您可能需要手动找到该文件,并使用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启发)