将 parquet 文件模式导出为 JSON 或 CSV

Posted

技术标签:

【中文标题】将 parquet 文件模式导出为 JSON 或 CSV【英文标题】:Export parquet file schema to JSON or CSV 【发布时间】:2020-03-05 11:30:41 【问题描述】:

我需要将 parquet 文件的架构提取为 JSON、TXT 或 CSV 格式。 这应该包括列名、parquet 文件中的数据类型。

例如:

"id", "type" : "integer" ,
 "booking_date""type" : "timestamp", "format" : "%Y-%m-%d %H:%M:%S.%f" 

【问题讨论】:

【参考方案1】:

我们可以使用.schemaparquet文件中读取schema,并转换成json格式最后保存为textfile。 p>

input parquet file:

spark.read.parquet("/tmp").printSchema()
 #root
 #|-- id: integer (nullable = true)
 #|-- name: string (nullable = true)
 #|-- booking_date: timestamp (nullable = true)

Extract the schema and write to HDFS/local filesystem:

spark.sparkContext.parallelize( #converting from string to rdd
[spark.read.parquet("/tmp").schema.json()] #read schema of parquetfile
 ).repartition(1).\
saveAsTextFile("/tmp_schema/") #saving the file into HDFS

Read the output file from hdfs:

$ hdfs dfs -cat /tmp_schema/part-00000
"fields":["metadata":,"name":"id","nullable":true,"type":"integer","metadata":,"name":"name","nullable":true,"type":"string","metadata":,"name":"booking_date","nullable":true,"type":"timestamp"],"type":"struct"

【讨论】:

以上是关于将 parquet 文件模式导出为 JSON 或 CSV的主要内容,如果未能解决你的问题,请参考以下文章

将多个 JSON 文件合并为单个 JSON 和 parquet 文件

使用 Java 将 Json 对象转换为 Parquet 格式而不转换为 AVRO(不使用 Spark、Hive、Pig、Impala)

pyspark文件读写示例-(CSV/JSON/Parquet-单个或多个)

验证 parquet 文件中的 NULL 值

Spark SQL - 如何将 DataFrame 写入文本文件?

如何将 JSON 导出为 CSV 或 Excel - Angular 2