parquet格式-在不同的文件中拆分列

tcomlyy6  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(524)

在parquet文档中明确提到,设计支持将元数据和数据拆分为不同的文件,还包括不同的列组可以存储在不同的文件中的可能性。
然而,我找不到任何关于如何做到这一点的指示。在我的用例中,我希望将元数据存储在一个文件中,将列1-100数据存储在一个文件中,将101-200数据存储在第二个文件中。
你知道怎么做到吗?

3hvapo4f

3hvapo4f1#

如果您使用的是pyspark,那么很简单:

df = spark.createDataFrameFrom(...)
df.write.parquet('file_name.parquet')

它将创建一个名为 file_name.parquet 在hdfs的默认位置。您只需创建两个Dataframe,一个具有列1-100,另一个具有列101-200的Dataframe并分别保存它们。如果您指的是Dataframe模式,它将自动保存元数据。
您可以选择一系列列,如下所示:

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')

相关问题