我正在使用Spark scala API。 prods_grpd具有以下类型:String,mutable.HashSet [String]
val prods_grpd = all_meds.aggregateByKey(initialSet)(addToSet,mergePartitionSets) prods_grpd.saveAsTextFile( “刮/ prods_grpdby_users.tsv”)
当我保存这个rdd时,我得到了这个o / p。第一个值是key,然后我得到一组键。
(8635214,集(2013-01-01))
(3580112,集(2013-01-01))
(146086,Set(2010-01-01,2012-01-01))
(112220,集(2013-01-01))
(2020,集(2013-01-01))
(24218,集(2013-01-01))
但是,我想要o / p之类的:
(8635214,2013-01-01)
(3580112,2013-01-01)
(146086,2010-01-01,2012-01-01)
(112220,2013-01-01)
(2020,2013-01-01)
(24218,2013-01-01)
我想知道如何取消/压平RDD的第二个参数。
答案 0 :(得分:0)
您不能简单地将Set
转换为Tuple
,因为元组不是集合,不支持任意数量的元素。相反,您可以将条目映射到具有所需格式的字符串:
prods_grpd.map{case (k, s) => {
val sstr = s.mkString(",")
s"($k,$sstr)"
}}.saveAsTextFile(...)