如何在pyspark dataframe的每个分区上执行pivot()和write.parquet?

如何在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

我有一个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
我想:

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”列。