使用 scala 和 Spark 在多维元组上减少 ByKey



>试图使用scala在多维列表中减少ByKey,这样元组被附加到父元组,从而生成多维元组。

在python中,我正在尝试附加到多维列表,如下所示,它运行良好:

.map(lambda z:(z[1][0][1],[[z[1][0][1],str(z[1][0][2]),str(z[1][0][3]),z[1][0][0].strftime('%Y-%m-%dT%H:%M:%SZ'),z[1][1]]])).reduceByKey(lambda a,b:a+b)

但是在 scala 中我无法使用 reduceByKey ,我正在尝试以下操作:

.map(t => (t._2._1._2,((t._2._1._2,t._2._1._3,t._2._1._4,t._2._1._1,t._2._2)))).reduceByKey(t,y => t++y)

也欢迎任何正确方向的提示!

Scala Tuple* 与 Python tuple 不同,它不是一个集合。这是一个Product.从技术上讲,它表示可能的异质值集的n倍笛卡尔乘积。Scala 元组不能串联,并且不能包含超过 22 个元素。

如果要收集每个键的值,则应使用某种类型的集合,甚至更好的groupByKey

另请参阅:我应该如何看待 Scala 的产品类别?

最新更新