-1

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

from shutil import copytree
copytree(source, destination)

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

4

2 回答 2

1

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"])
于 2018-12-03T09:55:30.823 回答
1

您可以作为数据框加载和写入(以镶木地板为例):

df = spark.read.parquet(<your_input_path>)
df.write.parquet(<your_destination_path>)

其中'your_input_path'可以是一个文件夹,它将复制其中的所有文件

于 2018-12-03T09:58:18.233 回答