在parquet文档中明确提到,设计支持将元数据和数据拆分为不同的文件,还包括不同的列组可以存储在不同的文件中的可能性。然而,我找不到任何关于如何做到这一点的指示。在我的用例中,我希望将元数据存储在一个文件中,将列1-100数据存储在一个文件中,将101-200数据存储在第二个文件中。你知道怎么做到吗?
3hvapo4f1#
如果您使用的是pyspark,那么很简单:
df = spark.createDataFrameFrom(...) df.write.parquet('file_name.parquet')
它将创建一个名为 file_name.parquet 在hdfs的默认位置。您只需创建两个Dataframe,一个具有列1-100,另一个具有列101-200的Dataframe并分别保存它们。如果您指的是Dataframe模式,它将自动保存元数据。您可以选择一系列列,如下所示:
file_name.parquet
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')
1条答案
按热度按时间3hvapo4f1#
如果您使用的是pyspark,那么很简单:
它将创建一个名为
file_name.parquet
在hdfs的默认位置。您只需创建两个Dataframe,一个具有列1-100,另一个具有列101-200的Dataframe并分别保存它们。如果您指的是Dataframe模式,它将自动保存元数据。您可以选择一系列列,如下所示:
将它们另存为单独的文件: