尝试使用scala在multidimensional列表上reduceByKey,以便将元组附加到父元组,从而生成多维元组。
在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)
也欢迎任何正确方向的提示!
答案 0 :(得分:2)
与Python Tuple*
不同,Scala tuple
不是集合。这是一个Product
。从技术上讲,它代表了可能异构的价值集的n倍笛卡尔积。 Scala Tuples不能连接,不能包含超过22个元素。
如果您想收集每个键的值,您应该使用某种类型的集合,甚至更好groupByKey
。