我一直在尝试通过pip安装pyarrow( pip install pyarrow
,并且,正如雅加夫所建议的: py -3.7 -m pip install --user pyarrow
)还有康达( conda install -c conda-forge pyarrow
,也用于 conda install pyarrow
),从src构建lib(使用conda环境和一些魔术,我不太了解),但是一直以来,在安装之后(没有错误),它以一个相同的问题结束,当我调用:
import pyarrow as pa
fs = pa.hdfs.connect(host='my_host', user='my_user@my_host', kerb_ticket='path_to_kerb_ticket')
它将失败,并显示下一条消息:
Traceback (most recent call last):
File "", line 1, in
File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\hdfs.py", line 209, in connect
extra_conf=extra_conf)
File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\hdfs.py", line 37, in __init__
_maybe_set_hadoop_classpath()
File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\hdfs.py", line 135, in _maybe_set_hadoop_classpath
classpath = _hadoop_classpath_glob(hadoop_bin)
File "C:\ProgramData\Anaconda3\lib\site-packages\pyarrow\hdfs.py", line 162, in _hadoop_classpath_glob
return subprocess.check_output(hadoop_classpath_args)
File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 395, in check_output
**kwargs).stdout
File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 472, in run
with Popen(*popenargs,**kwargs) as process:
File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 775, in __init__
restore_signals, start_new_session)
File "C:\ProgramData\Anaconda3\lib\subprocess.py", line 1178, in _execute_child
startupinfo)
OSError: [WinError 193] %1 is not a valid win32 application
一开始我在想,hadoop2.5.6中的libhdfs.so有一个问题,但似乎我错了。我猜,问题不在pyarrow或子流程中,而是一些系统变量或依赖项。
我还手动定义了系统变量 HADOOP_HOME
, JAVA_HOME
以及 KRB5CCNAME
2条答案
按热度按时间zqdjd7g91#
好吧,我自己找到的。我一直在想,这个问题是在系统环境变量中,它需要
CLASSPATH
变量,其中包含指向hadoop客户端的所有.jar文件的路径,您可以使用hadoop classpath
或者hadoop classpath --glob
在命令中。ghg1uchk2#
您可以在cmd中使用代码n,以便正确安装pyarrow。
py-3.7-m pip安装--用户pyarrow
安装后请尝试代码。