Apache spark 带有自定义分区器的Pyspark groupBy

Apache spark 带有自定义分区器的Pyspark groupBy,apache-spark,pyspark,apache-spark-sql,Apache Spark,Pyspark,Apache Spark Sql,我想在处理给定的数据帧时应用一些自定义分区。我发现RDD为我提供了所需的功能。现在当我说 dataframe.rdd.groupBy(lambda row: row[1:3], numPartitions, partitioner) 最后我得到了一个PythonRDD,它有一个元组作为键,一个ResultIterator作为值。我接下来要做的是将其转换回数据帧,因为我想使用GroupedData的函数。我尝试过很多事情,但到目前为止都不走运 任何帮助都将不胜感激 我会查看查询计划,看看是否可以

我想在处理给定的数据帧时应用一些自定义分区。我发现RDD为我提供了所需的功能。现在当我说

dataframe.rdd.groupBy(lambda row: row[1:3], numPartitions, partitioner)
最后我得到了一个
PythonRDD
,它有一个元组作为键,一个
ResultIterator
作为值。我接下来要做的是将其转换回数据帧,因为我想使用
GroupedData
的函数。我尝试过很多事情,但到目前为止都不走运


任何帮助都将不胜感激

我会查看查询计划,看看是否可以使用
repartition
repartitionByRange
操作符获得非常类似的计划。在
GroupedData
之后,您只能执行分组运算符,这就是如何将其“返回”到数据帧。@Jacek问题是我需要执行
groupBy
,因为我的ML模型需要处理特定的数据集。如果我这样做,我会自动得到一个“隐式”洗牌,这使得我的重新分区和自定义分区工作变得过时。你能分享一下你尝试过的吗?您正在使用哪个版本的spark?使用现有的
.toDF()
函数是否有任何问题?我试图重现这个问题,但对我来说效果很好。这里有相同的Codebin:是否可以在数据帧上使用正常的
groupBy
,然后再进行
重新分区?