如何解决Parquet 格式 - 在不同文件中拆分列
在 Parquet 文档中明确提到该设计支持将元数据和数据拆分到不同的文件中,也包括可以将不同的列组存储在不同文件中的可能性。
但是,我找不到有关如何实现这一目标的任何说明。在我的用例中,我想将元数据存储在一个文件中,将 1-100 列数据存储在一个文件中,将 101-200 列数据存储在第二个文件中。
知道如何实现这一目标吗?
解决方法
如果您使用的是 PySpark,就这么简单:
df = spark.createDataFrameFrom(...)
df.write.parquet('file_name.parquet')
它会在 HDFS 的默认位置创建一个名为 file_name.parquet
的文件夹。您可以只创建两个数据框,一个包含 1-100 列,另一个数据框包含 101-200 列,并分别保存它们。如果您指的是数据框架构,它会自动保存元数据。
您可以像这样选择一系列列:
df_first_hundred = df.select(df.columns[:100])
df_second_hundred = df.select(df.columns[100:])
将它们另存为单独的文件:
df_first_hundred.write.parquet('df_first_hundred')
df_second_hundred.write.parquet('df_second_hundred')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。