如何用新的 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?