具有组合键的数据集上的聚合

自言自语

我的输入数据集看起来像ds [(T,U)]。T和U都如下所示。

T => (key1, key2, ...) and U => (value1, value2, ...)

聚合看起来像

ds.groupBy("key1", "key2", ...)
      .agg(
        sum("value1")).alias("value11"),
        sum("value2")).alias("value22"),
        ...
      .select("key1", "key2", ..., "value11", "value22", "fileId", ...)

这是最终输出。是否有更好的方法通过使用groupByKey / reduceGroups或其他性能来实现相同的输出?

通过处理行来生成inout数据集。我们在行内嵌套对象,然后循环遍历以从每行中提取键和值。将这两个过程结合在一起的有效方法是什么?对于这种情况,自定义UDAF会更好吗?

用户名

就性能而言,这是最好的。使用静态类型DatasetgroupByKey/reduceGroups只会降低性能,或充其量只能提供任何改进。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章