我是pyspark的新手,我的任务是使用也发生并行化的pyspark将源文件夹数据复制到目标文件夹。
在python中,我可以使用
from shutil import copytree
copytree(source, destination)
通过此功能,我可以使用标准python来复制文件夹结构的整个数据。我想做同样的事情。集群上使用pyspark的任务。我应该如何进行,我正在使用YARN作为资源管理器。谢谢。
答案 0 :(得分:0)
spark允许您操作数据,而不是文件。 因此,我可以为您提供2种解决方案:
1-您可以通过spark读取数据并将其写入需要的位置:
spark.read.format(
"my_format"
).load(
"in_path"
).write.format(
"my_format"
).save("out_path")
2-另一个解决方案是使用hadoop工具:
from subprocess import call
call(["hdfs", "dfs", "-mv", "origine_path", "target_path"])
答案 1 :(得分:0)
您可以加载和写入为数据框(镶木地板示例):
df = spark.read.parquet(<your_input_path>)
df.write.parquet(<your_destination_path>)
其中“ your_input_path”可以是文件夹,它将复制其中的所有文件