如何在windows上正确设置pyarrow for python3.7

ghhaqwfi  于 2021-05-27  发布在  Hadoop
关注(0)|答案(2)|浏览(730)

我一直在尝试通过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

zqdjd7g9

zqdjd7g91#

好吧,我自己找到的。我一直在想,这个问题是在系统环境变量中,它需要 CLASSPATH 变量,其中包含指向hadoop客户端的所有.jar文件的路径,您可以使用 hadoop classpath 或者 hadoop classpath --glob 在命令中。

ghg1uchk

ghg1uchk2#

您可以在cmd中使用代码n,以便正确安装pyarrow。
py-3.7-m pip安装--用户pyarrow
安装后请尝试代码。

相关问题