【问题标题】:copy folder data from source location to destination locaton using pyspark [duplicate]使用pyspark将文件夹数据从源位置复制到目标位置[重复]
【发布时间】:2021-07-15 18:35:09
【问题描述】:

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

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

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

【问题讨论】:

    标签: python apache-spark pyspark


    【解决方案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"])
    

    【讨论】:

    • 谢谢。我喜欢使用 hadoop 工具的第二种解决方案(因为我无需担心文件格式)。我正在复制同一卷集群中的数据,并且必须从那里读取它。我也在寻找其他方法。目前我正在使用 unix 文件系统,使用硬链接和软链接。它将节省空间和数据复制时间。如果您能帮助我,将不胜感激。谢谢
    【解决方案2】:

    您可以作为 Dataframe 加载和写入(以 parquet 为例):

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-02
      • 2017-10-11
      • 2017-04-23
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      相关资源
      最近更新 更多