使用scala和spark对多维元组进行约简

使用scala和spark对多维元组进行约简,scala,apache-spark,spark-streaming,reducers,Scala,Apache Spark,Spark Streaming,Reducers,尝试使用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中,我无法使用r

尝试使用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)

任何正确方向的提示都是欢迎的

与Python
Tuple
不同,Scala
Tuple*
不是一个集合。这是一个好主意。从技术上讲,它代表了一组可能不均匀的值的n倍笛卡尔积。Scala元组不能连接,并且不能包含超过22个元素

如果您想收集每个键的值,您应该使用某种类型的收集,或者更好的
groupByKey


另请参见:

Scala
Tuple*
,与Python
Tuple
不同,它不是一个集合。这是一个好主意。从技术上讲,它代表了一组可能不均匀的值的n倍笛卡尔积。Scala元组不能连接,并且不能包含超过22个元素

如果您想收集每个键的值,您应该使用某种类型的收集,或者更好的
groupByKey


另请参见:

您能举个例子吗?您能举个例子吗?