Parquet 文件到 CSV 的转换

Parquet file to CSV conversion

我想将我的 Parquet 文件转换为 CSV 文件。 有没有一种方法可以像我一样只能找到 CSV 到 Parquet 文件,反之亦然。

    DataFrame df = sqlContext.parquetFile("parquet path");  


    df.javaRDD().saveAsTextFile("outputpath");

这在我使用 spark 2.1.0 时很有效。第一个 运行 火花 shell。类似于:

./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 文件

使用 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"

这在 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")
val df = spark.read.parquet("infile.parquet")

df.write.csv("outfile.csv")

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

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

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