Как правильно настроить pyarrow для python 3.7 на Windows - PullRequest
0 голосов
/ 12 марта 2020

Я пытался установить pyarrow через pip (pip install pyarrow, и, как предлагалось Yagav: py -3.7 -m pip install --user pyarrow) и conda (conda install -c conda-forge pyarrow, также использовал conda install pyarrow), собирая lib из sr c (используя окружение conda и некоторые волхвы c, которые я не очень понимаю), но все время после установки (без ошибок) он заканчивается одной и той же проблемой, когда я звоню:

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

Сначала я подумал, что есть проблема с libhdfs.so из oop 2.5.6, но, похоже, я ошибся в этом , Я предполагаю, что проблема не в pyarrow или подпроцессе, а в некоторых системных переменных или зависимостях.

Также я определил системные переменные вручную как HADOOP_HOME, JAVA_HOME и KRB5CCNAME

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Хорошо, я нашел это сам. Как я и думал, проблема была в системных переменных среды, в ней должна быть переменная CLASSPATH, которая содержит пути ко всем файлам .jar клиента oop, вы можете получить их, используя hadoop classpath или * 1003. * в cmd.

0 голосов
/ 12 марта 2020

Вы можете использовать код в cmd, чтобы правильно установить pyarrow.

py -3.7 -m pip install --user pyarrow

после установки попробуйте код.

...