使用 parquet 格式附加 Apache Spark 中列的描述
Posted
技术标签:
【中文标题】使用 parquet 格式附加 Apache Spark 中列的描述【英文标题】:Attach description of columns in Apache Spark using parquet format 【发布时间】:2019-05-29 19:22:27 【问题描述】:我读了一个镶木地板:
df = spark.read.parquet(file_name)
并获取具有以下内容的列:
df.columns
并返回一个列列表 ['col1', 'col2', 'col3']
我读到 parquet 格式能够在文件中存储一些元数据。
有没有办法存储和读取额外的元数据,例如,附上每列的人工描述?
谢谢。
【问题讨论】:
看起来这就是 parquet 文件的持久化方式(没有标题或 'col1 等)。我先检查一下。默认情况下,它存储列名和类型。 github.com/awesome-spark/spark-gotchas/blob/master/… 【参考方案1】:无法在 Parquet 文件中读取或存储任意附加元数据。
当提到 Parquet 文件中的元数据时,它指的是与字段相关的技术元数据,包括嵌套字段的数量、类型信息、长度信息等。如果您查看 Parquet 文档中的 SchemaElement 类( https://static.javadoc.io/org.apache.parquet/parquet-format/2.6.0/org/apache/parquet/format/SchemaElement.html) 您将找到架构中每个字段的所有可用元数据。这不包括字段名称之外的任何人类可读的描述。
可以在此处的“文件格式”部分找到 Parquet 元数据的一个很好的概述 - https://parquet.apache.org/documentation/latest/
【讨论】:
以上是关于使用 parquet 格式附加 Apache Spark 中列的描述的主要内容,如果未能解决你的问题,请参考以下文章
使用经 EMRFS S3 优化的提交器提高 Apache Spark 写入 Apache Parquet 格式文件的性能