将 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】:我们可以使用.schema
从parquet
文件中读取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-单个或多个)