我是 pyspark 的新手,我的任务是使用 pyspark 将源文件夹数据复制到目标文件夹,其中也会发生并行化。在python中,我可以使用复制数据
from shutil import copytree
copytree(source, destination)
有了这个,我可以使用标准 python 以文件夹结构重复复制整个数据。我也想做同样的事情。在集群上使用 pyspark 的任务。我应该如何进行,我正在使用 YARN 作为资源管理器。
我是 pyspark 的新手,我的任务是使用 pyspark 将源文件夹数据复制到目标文件夹,其中也会发生并行化。在python中,我可以使用复制数据
from shutil import copytree
copytree(source, destination)
有了这个,我可以使用标准 python 以文件夹结构重复复制整个数据。我也想做同样的事情。在集群上使用 pyspark 的任务。我应该如何进行,我正在使用 YARN 作为资源管理器。
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"])
您可以作为数据框加载和写入(以镶木地板为例):
df = spark.read.parquet(<your_input_path>)
df.write.parquet(<your_destination_path>)
其中'your_input_path'可以是一个文件夹,它将复制其中的所有文件