如何将spark cluster上用pandas编写的文件移动到hdfs?

y0u0uwnf  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(253)

我正在运行一个使用集群模式的spark作业,并使用pandas编写一些文件,我认为它正在temp目录中编写,现在我想移动这些文件或在hdfs中编写这些文件。

4si2a6ki

4si2a6ki1#

您有多种选择:
将pandasDataframe转换为pysparkDataframe,并简单地将其保存到hdfs中

spark_df = spark.createDataFrame(pandas_df)
spark_df.write.parquet("hdfs:///path/on/hdfs/file.parquet")

使用pandas在本地保存文件并使用 subprocess 将文件复制到hdfs

import subprocess

command = "hdfs dfs -copyFromLocal -f local/file.parquet /path/on/hdfs".split()
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

print(result.stdout)
print(result.stderr)

本地保存文件并使用第三方库hdfs3将文件复制到hdfs

from hdfs3 import HDFileSystem

hdfs = HDFileSystem()
hdfs.cp("local/file.parquet", "/path/on/hdfs")

相关问题