我想将Parquet文件转换为CSV格式。 有没有办法相同,因为我只能找到CSV到Parquet文件,反之亦然。
答案 0 :(得分:1)
当使用spark 2.1.0时,这对我有用。首先运行火花壳。类似的东西:
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
它将在foreach ($data as $object)
{
echo "items:". $object['number'] ."\n";
};
答案 1 :(得分:1)
val df = spark.read.parquet("infile.parquet")
df.write.csv("outfile.csv")
“ infile.parquet”和“ outfile.csv”均应位于hdfs文件系统上。
答案 2 :(得分:0)
DataFrame df = sqlContext.parquetFile("parquet path");
df.javaRDD().saveAsTextFile("outputpath");
答案 3 :(得分:0)
使用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"
答案 4 :(得分:0)
这对我来说很有用。
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 :(得分:0)
我看到的另一种简单方法是:
import pandas as pd
df = pd.read_parquet('myfile.parquet')
df.to_csv('myfile.csv')