我按照教程和指导从pyarrow文件,但我仍然不能正确使用hdfs文件系统从我的远程主机获取文件。
pre-requise:https://arrow.apache.org/docs/11.0/python/filesystems.html#filesystem-hdfs example get file:https://arrow.apache.org/docs/11.0/python/generated/pyarrow.fs.HadoopFileSystem.html#pyarrow.fs.HadoopFileSystem.open_input_file
下面是我的一些代码:
import os
import pyarrow
from pyarrow import fs
os.environ['ARROW_LIBHDFS_DIR'] = ""
os.environ["HADOOP_HOME"] = ""
os.environ["JAVA_HOME"] = ""
os.environ["CLASSPATH"] = ""
hdfs_config = {
"host" : "myhost",
"port" : 9443,
"user" : "me"
}
hdfs = fs.HadoopFileSystem(
#hdfs_config['host'],
"default", # use the core.xml
hdfs_config['port'],
user=hdfs_config['user']
)
字符串
这一部分使用我输入的远程主机或core.xml文件中的主机创建pyarrow.fs.HadoopFileSystem。
但是,我有问题,我的远程文件路径像“/my_group/data/red_wine_quality.csv”
with hdfs.open_input_file(data) as f:
print(f.readall())
型
文件没有找到,这是明确的,但为什么它是在我的本地文件系统搜索,而不是在hdfs上的。
如果使用本地文件的数据,它的工作,但这不是我想要的。
我尝试了很多例子,主机,但没有成功读取hdfs文件。
1条答案
按热度按时间ubbxdtey1#
好吧,经过多次尝试,我发现为什么它不工作。
首先,os.environ [“HADOOP_HOME”]是无用的,无论我如何改变值或核心XML都没有考虑到。
第二个要解决的问题是类路径没有正确初始化。
跟着医生。
字符串
成功了