【问题标题】:Parquet file to CSV conversionParquet 文件到 CSV 的转换
【发布时间】:2016-01-02 23:45:04
【问题描述】:

我想将 Parquet 文件转换为 CSV 。 有没有办法和我只能找到 CSV 到 Parquet 文件一样,反之亦然。

【问题讨论】:

标签: csv apache-spark parquet


【解决方案1】:

这在使用 spark 2.1.0 时对我有用。首先运行火花壳。比如:

./bin/spark-shell

然后:

val sqlContext = new org.apache.spark.sql.SQLContext(sc)
val df = sqlContext.parquetFile("parquet-file.parquet")
df.printSchema()
df.write.format("csv").save("directory")

它将在directory中创建csv文件

【讨论】:

    【解决方案2】:
    val df = spark.read.parquet("infile.parquet")
    
    df.write.csv("outfile.csv")
    

    “infile.parquet”和“outfile.csv”都应该是 hdfs 文件系统上的位置。

    【讨论】:

      【解决方案3】:
          DataFrame df = sqlContext.parquetFile("parquet path");  
      
      
          df.javaRDD().saveAsTextFile("outputpath");
      

      【讨论】:

        【解决方案4】:

        这在 spark 中对我有用

        spark-shell --packages com.databricks:spark-csv_2.11:1.2.0
        val df = sqlContext.parquetFile("/hdfs/source.parquet")
        df.printSchema()
        df.write.format("com.databricks.spark.csv").save("/hdfs/target_csv")
        

        【讨论】:

          【解决方案5】:

          我看到的另一种简单方法是:

          import pandas as pd
          df = pd.read_parquet('myfile.parquet')
          df.to_csv('myfile.csv')
          

          【讨论】:

            【解决方案6】:

            使用 Spark 和 Python 会很简单:

            for filename in glob.glob("[location_of_parquet_file]/*.snappy.parquet"):
                    print filename
                    df = sqlContext.read.parquet(filename)
                    df.write.csv("[destination]")
                    print "csv generated"
            

            【讨论】:

              猜你喜欢
              • 2020-09-22
              • 1970-01-01
              • 2018-12-15
              • 2018-04-04
              • 2018-07-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多