PySpark 无法将文件从本地移动到 HDFS
PySpark not able to move file from local to HDFS
我是 运行 我本地机器上的 hadoop,端口 8020。我的名称节点存在于路径 /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
如果您想使用 Spark 上传本地 CSV,您需要实际使用 Spark
spark = SparkSession.builder.getOrCreate()
df = spark.read.csv('file:///path/to/file.csv')
df.write.csv(output_path)
否则,您无法“放入”Homebrew 位置,因为 在 HDFS 上不存在(至少,除非您 运行 hadoop fs mkdir -p /usr/local/Cellar/...
出于某种原因)
when I try to do hdfs.mv with same params ... FileNotFoundError
因为你需要先cd
到有本地CSV的目录。否则,指定完整路径
我是 运行 我本地机器上的 hadoop,端口 8020。我的名称节点存在于路径 /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
如果您想使用 Spark 上传本地 CSV,您需要实际使用 Spark
spark = SparkSession.builder.getOrCreate()
df = spark.read.csv('file:///path/to/file.csv')
df.write.csv(output_path)
否则,您无法“放入”Homebrew 位置,因为 在 HDFS 上不存在(至少,除非您 运行 hadoop fs mkdir -p /usr/local/Cellar/...
出于某种原因)
when I try to do hdfs.mv with same params ... FileNotFoundError
因为你需要先cd
到有本地CSV的目录。否则,指定完整路径