使用pyspark将文件夹数据从源位置复制到目标位置

时间:2018-12-03 09:17:14

标签: python apache-spark pyspark

我是pyspark的新手,我的任务是使用也发生并行化的pyspark将源文件夹数据复制到目标文件夹。 在python中,我可以使用

复制数据
from shutil import copytree
copytree(source, destination)

通过此功能,我可以使用标准python来复制文件夹结构的整个数据。我想做同样的事情。集群上使用pyspark的任务。我应该如何进行,我正在使用YARN作为资源管理器。谢谢。

2 个答案:

答案 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”可以是文件夹,它将复制其中的所有文件