如何用新的 fs.HadoopFileSystem 替换旧的遗留 hdfs 连接器?
How to replace old legacy hdfs connector with new fs.HadoopFileSystem?
当我尝试更换旧版 hdfs 连接器时
from pyarrow import hdfs
fs = hdfs.connect()
,适用于新的 fs 连接器
from pyarrow import fs
client = fs.HadoopFileSystem(host="default")
我遇到 python 内核崩溃。
我做错了什么?
检查您的环境中是否设置了这三个参数。
在您的终端上检查这个
echo $HADOOP_HOME
echo $JAVA_HOME
echo $ARROW_LIBHDFS_DIR
如果没有,您可能需要在使用 pyarrow 之前设置您的环境。你可以在 python
上试试这个
import os
from pyarrow import fs
os.environ['HADOOP_HOME'] = <path to hadoop binaries>
os.environ['ARROW_LIBHDFS_DIR'] = '<path to libhdfs.so>'
fs.HadoopFileSystem("hdfs://namenode:8020?user=hdfsuser")
# fs.HadoopFileSystem("namenode") should work too
看到这个 - How do i set the path of libhdfs.so for pyarrow?
当我尝试更换旧版 hdfs 连接器时
from pyarrow import hdfs
fs = hdfs.connect()
,适用于新的 fs 连接器
from pyarrow import fs
client = fs.HadoopFileSystem(host="default")
我遇到 python 内核崩溃。 我做错了什么?
检查您的环境中是否设置了这三个参数。 在您的终端上检查这个
echo $HADOOP_HOME
echo $JAVA_HOME
echo $ARROW_LIBHDFS_DIR
如果没有,您可能需要在使用 pyarrow 之前设置您的环境。你可以在 python
上试试这个import os
from pyarrow import fs
os.environ['HADOOP_HOME'] = <path to hadoop binaries>
os.environ['ARROW_LIBHDFS_DIR'] = '<path to libhdfs.so>'
fs.HadoopFileSystem("hdfs://namenode:8020?user=hdfsuser")
# fs.HadoopFileSystem("namenode") should work too
看到这个 - How do i set the path of libhdfs.so for pyarrow?