【发布时间】:2021-09-09 03:23:14
【问题描述】:
我在本地机器的 8020 端口上运行 hadoop。我的名称节点存在于路径 /usr/local/Cellar/hadoop/hdfs/tmp/dfs/name 下。我已经使用 Conda env 设置了一个 pySpark 项目并安装了 pyspark 和 hdfs3 依赖项。
以下是我的代码:
from pyspark.sql import SparkSession
from hdfs3 import HDFileSystem
spark = SparkSession.builder.appName('First Project').getOrCreate()
hdfs = HDFileSystem(host="localhost", port=8020)
hdfs.put("test.csv", "/usr/local/Cellar/hadoop/hdfs/tmp/dfs/name/test.csv")
我正在尝试将文件从本地文件系统复制到 HDFS,但出现以下错误:
OSError: Could not open file: /usr/local/Cellar/hadoop/hdfs/tmp/dfs/name/test.csv, mode: wb Parent directory doesn't exist: /usr/local/Cellar/hadoop/hdfs/tmp/dfs/name
但是我可以 cd 进入同一个目录并且它存在。我不确定为什么会出现此错误。
另外,当我尝试使用相同的参数执行 hdfs.mv 时,我收到以下错误:
FileNotFoundError: test.csv
【问题讨论】:
-
hdfs3与 spark 无关。你也不应该把你的 DFS 数据目录放在 homebrew 路径中