将Parquet转换为CSV

时间:2018-03-21 10:48:14

标签: csv hdfs parquet

我的hdfs中有镶木地板文件。我想将这些镶木地板文件转换为csv格式&复制到本地。 我试过这个:

hadoop fs -text /user/Current_Data/partitioned_key=MEDIA/000000_0  > /home/oozie-coordinator-workflows/quality_report/media.csv

hadoop fs -copyToLocal /user/Current_Data/partitioned_key=MEDIA/000000_0 /home/oozie-coordinator-workflows/quality_report/media1.csv

1 个答案:

答案 0 :(得分:0)

你正在做的事情是行不通的,你只是在阅读和写作未转换的实木复合地板数据。

你可以使用spark或hive / impala来实现,下面是spark中的解释。

<强> SPARK:

阅读镶木地板文件df = spark.read.parquet("/user/Current_Data/partitioned_key=MEDIA/") 将其写入HDFS

df.write.csv("home/oozie-coordinator-workflows/quality_report/media1.csv")

请查看以上here的更多信息。

HIVE:

CREATE TABLE test ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' STORED AS AVRO TBLPROPERTIES ('avro.schema.url'='myHost/myAvroSchema.avsc'); 

CREATE EXTERNAL TABLE parquet_test LIKE test STORED AS PARQUET LOCATION 'hdfs:///user/Current_Data/partitioned_key=MEDIA/';

获得表格后,您可以使用以下命令通过beeline / hive创建CSV文件。

beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv2 -e "select * from parquet_test" > /local/path/toTheFile.csv

检查以下两个链接以获得更多解释。

Dynamically create Hive external table with Avro schema on Parquet Data

Export as csv in beeline hive