【问题标题】:How to move files written with Pandas on Spark cluster to HDFS?如何将使用 Pandas 在 Spark 集群上编写的文件移动到 HDFS?
【发布时间】:2021-02-16 18:10:42
【问题描述】:

我正在使用集群模式运行 Spark 作业并使用 Pandas 写入一些文件,我认为它正在写入临时目录,现在我想移动这些文件或将这些文件写入 HDFS。

【问题讨论】:

    标签: apache-spark hadoop pyspark


    【解决方案1】:

    您有多种选择:

    • 将 Pandas DataFrame 转换为 PySpark DataFrame 并简单地将其保存到 HDFS 中
    spark_df = spark.createDataFrame(pandas_df)
    spark_df.write.parquet("hdfs:///path/on/hdfs/file.parquet")
    
    • 使用 Pandas 将文件保存到本地并使用subprocess 将文件复制到 HDFS
    import subprocess
    
    command = "hdfs dfs -copyFromLocal -f local/file.parquet /path/on/hdfs".split()
    result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    
    print(result.stdout)
    print(result.stderr)
    
    • 在本地保存文件并使用 3rd 方库 - hdfs3 - 将文件复制到 HDFS
    from hdfs3 import HDFileSystem
    
    hdfs = HDFileSystem()
    hdfs.cp("local/file.parquet", "/path/on/hdfs")
    

    【讨论】:

      猜你喜欢
      • 2021-04-01
      • 2021-08-30
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多