Parquet文件转换为CSV格式

3

我想将我的Parquet文件转换为CSV格式。 是否有相应的方法?因为我只能找到从CSV到Parquet文件的转换方法,但没有相反的。


1
你使用Spark吗?如果是,请使用正确的标签(apache-spark)。 - mauriciojost
你能提供一个你想要的代码示例吗? - mauriciojost
请参考以下链接:https://dev59.com/11kS5IYBdhLWcg3w05aT - Mark Rajcok
1
@mauriciojost:添加了标签。 - Ganesh Jadhav
6个回答

2

当我使用Spark 2.1.0时,这对我起了作用。首先运行Spark 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")

它将在目录中创建csv文件。


1
val df = spark.read.parquet("infile.parquet")

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

"infile.parquet"和"outfile.csv"都应该是HDFS文件系统上的位置。


0

这个在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")

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


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

0
另一种我看到的简单方法是:
import pandas as pd
df = pd.read_parquet('myfile.parquet')
df.to_csv('myfile.csv')

-1

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接