>试图使用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 的产品类别?