Apache spark Spark数据帧中是否有aggregateByKey函数?
在Spark中,在DataFrameAPI中是否有用于RDD的aggregateByKey方法的等价物Apache spark Spark数据帧中是否有aggregateByKey函数?,apache-spark,dataframe,rdd,Apache Spark,Dataframe,Rdd,在Spark中,在DataFrameAPI中是否有用于RDD的aggregateByKey方法的等价物 数据帧接口中最常见的聚合操作可以使用agg和已定义的聚合器来完成,例如sum、first、max,等等。如果您希望执行类似于分组和聚合的操作,请使用la SQL,您应该首先查看那些现有的聚合函数 然而,aggregateByKey方法公开了更复杂的逻辑,允许您实现一些复杂的聚合例程。如果您希望这样做,您将希望使用Dataset接口,它与您已经习惯于使用RDD的接口非常相似。具体而言,请查看如何
数据帧接口中最常见的聚合操作可以使用
agg
和已定义的聚合器来完成,例如sum
、first
、max
,等等。如果您希望执行类似于分组和聚合的操作,请使用la SQL,您应该首先查看那些现有的聚合函数
然而,aggregateByKey
方法公开了更复杂的逻辑,允许您实现一些复杂的聚合例程。如果您希望这样做,您将希望使用Dataset接口,它与您已经习惯于使用RDD的接口非常相似。具体而言,请查看如何创建自定义聚合器:
在这里,您可以定义聚合器方法,如初始化
,合并
,等等,这些方法指定如何创建聚合器,将单个元素合并到聚合中,以及如何跨执行器/任务将中间聚合组合在一起
一旦定义了聚合器,就可以在数据集上使用它,例如
ds.groupBy(u.myKey).agg(myCustomAggregator)
对于数据帧API,请使用groupBy
。