spark agg java_spark2.3.0 的agg 方法现在限制数量

spark2.3.0 的agg 方法现在限制数量,30个可以,60个不可以,记录一下

以后agg超过30个之后需要分次处理

原代码

scala

val intervalCollectArr = df.agg(cols.toArray.head, cols.toArray.tail: _*).collect().apply(0)

修改为

scala var len = cols.length var intervalRDD: RDD[Row] = null val n = 30 while(len > n) { val cols2 = cols.toArray.take(n) cols.remove(n) if (intervalRDD == null) intervalRDD = df.agg(cols2.head, cols2.tail: _*).rdd else intervalRDD = intervalRDD.zip(df.agg(cols2.head, cols2.tail: _*).rdd).map(row => { var res = new ArrayBuffer[Any] res ++= row._1.toSeq res ++= row._2.toSeq Row.fromSeq(res) }) len -= n } val intervalCollectArr = intervalRDD.collect().apply(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值