【问题标题】:Create a non-hdfs csv from spark dataframe从 spark 数据框创建非 hdfs csv
【发布时间】:2019-07-14 14:49:03
【问题描述】:

我想使用 spark DataFrame 创建一个非 hdfs .csv 文件。怎么可能呢?

这个非 hdfs .csv 文件的目的是在其上使用 read_csv() 并将其加载回 pandas DataFrame。

我尝试使用 toPandas(),但我的 spark DataFrame 中有 4500 万条记录,而且速度非常慢。

【问题讨论】:

    标签: python-3.x pandas apache-spark pyspark pyspark-sql


    【解决方案1】:

    如果您尝试写入 s3,有几种方法可以做到:

    1. 使用经过列优化的 Parquet

    假设你的数据框是 df:

    # Spark takes care of everything here, but you will have multiple files in the folder
    df.write.parquet('s3a://path/filename')
    
    1. 使用更传统的行格式的 csv
    # Spark takes care of everything here, and you will have a single file in the end
    df.repartition(1).write\
    .option('header', 'True')\
    .format('csv')\
    .save('s3a://path/')
    

    【讨论】:

    • 不是 s3,我想将其写入 Hadoop Cloudera 集群上的本地节点
    【解决方案2】:

    如果您有 4500 万条记录,您可能需要创建一组 spark 会自动执行的 csv 文件。根据您要保存数据的位置,路径会有所不同。例如,如果您想写入 S3,您可以提供这样的路径。

    df.write.csv("s3://my-bucket/path/to/folder/")

    您可能还想在写入之前手动重新分区数据以获得准确数量的输出文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      • 1970-01-01
      • 2016-10-29
      • 2019-11-27
      • 2021-01-16
      相关资源
      最近更新 更多