如何在pyspark dataframe的每个分区上执行pivot()和write.parquet?
我有一个spark数据帧df,如下所示:如何在pyspark dataframe的每个分区上执行pivot()和write.parquet?,pyspark,pyspark-dataframes,Pyspark,Pyspark Dataframes,我有一个spark数据帧df,如下所示: key| date | val | col3 1 1 10 1 1 2 12 1 2 1 5 1 2 2 7 1 3 1 30 2 3 2 20 2 4 1 12 2 4 2 8 2 5 1 0 2 5 2 12 2
key| date | val | col3
1 1 10 1
1 2 12 1
2 1 5 1
2 2 7 1
3 1 30 2
3 2 20 2
4 1 12 2
4 2 8 2
5 1 0 2
5 2 12 2
我想:
1) df_pivot = df.groupBy(['date', 'col3']).pivot('key').sum('val')
2) df_pivot.write.parquet('location')
但我的数据可以通过数百万个唯一的键和唯一的col3变得非常大。
有没有办法在col3的每个分区中执行上述操作?
例如:对于col3==1的分区,做枢轴并写拼花地板
注意:我不想使用for循环 有趣的问题,但也不确定它有多有用!我想知道这是否必要,你这样做解决了什么更大的问题?@Dee谢谢你的评论。我需要的数据是在一个特定的图书馆广泛的格式。因此,枢轴部分。因此,我需要将数据透视图写成拼花地板,然后在该库中读取。@Dee所需的格式是;索引:是“日期”列,列名是唯一键,列中的值将是“val”列。有趣的问题,但也不确定它有多有用!我想知道这是否必要,你这样做解决了什么更大的问题?@Dee谢谢你的评论。我需要的数据是在一个特定的图书馆广泛的格式。因此,枢轴部分。因此,我需要将数据透视图写成拼花地板,然后在该库中读取。@Dee所需的格式是;索引:是“日期”列,列名是唯一键,列中的值为“val”列。