0
格式化我有一些火花像这样的代码:删除列表中的火花
val combPrdGrp = custPrdGrp3.join(cmpgnPrdGrp3)
val combPrdGrp2 = combPrdGrp.groupByKey
val combPrdGrp3 = combPrdGrp2.map{case (k3, vals3) => {
val valsString3 = vals3.map{case (id3, m3) => {
s"$id3 $m3"
}
}
s"$k3 $valsString3"
}}
当我做了combPrdGrp3.first
我得到下面的结果。
res1: String = 110| List({'CNSMR_DIRCT_SAVG': {PRVCY_CALL: 1, PRVCY_SWP: 1, PRVCY_MAIL: 1, PRVCY_AFIL: 1, PRVCY_FCRA: 1, PRVCY_PIPE: 1, PRVCY_GLBA: 4}}| {'CARDXSL1503L': {contacted: '3/25/2015', channel: 'CARD-XSL', hit_home_date: 'ASPEN - Reminder', campaign: 'XSELL TO 360', creative: 'EM', refcode: 'Y'}})
我想List(
和结束)
被删除,但似乎无法弄清楚如何做到这一点。我试图用.pipe
但似乎并没有这样的工作:
val combPrdGrp4 = combPrdGrp3.pipe("sed s/List((//g").pipe("sed s/)//g")
会崩溃SC出于某种原因。尝试处理结果时,我会得到一个sc shutdown
错误。
做combPrdGrp2.first
会产生这样的结果:
res2: (String, Iterable[(String, String)]) = (110|,CompactBuffer(({'CNSMR_DIRCT_SAVG': {PRVCY_CALL: 1, PRVCY_SWP: 1, PRVCY_MAIL: 1, PRVCY_AFIL: 1, PRVCY_FCRA: 1, PRVCY_PIPE: 1, PRVCY_GLBA: 4}}|, {'CARDXSL1503L': {contacted: '3/25/2015', channel: 'CARD-XSL', hit_home_date: 'ASPEN - Reminder', campaign: 'XSELL TO 360', creative: 'EM', refcode: 'Y'}})))
得到':20:error:not found:value n',但我在'combPrdGrp2.map' ....的情况下看到了n ......而不是'val combPrdGrp2 = combPrdGrp.groupByKey' ...它变成'val combPrdGrp2 = List(combPrdGrp)'?当我做combPrdGrp2.first时,我得到这个错误:':58:error:value first不是List [org.apache.spark.rdd.RDD [(String,(String,String)]]]的成员' ...以及关键的团队会发生什么? –
user2061886
1)我在我的答案中纠正了错字,所以它编译正确。 2)你仍然会使用'val combPrdGrp2 = combPrdGrp.groupByKey'。 'List(elem)'只是创建一个具有类似内容的集合,以显示'mkString'如何在你的情况下工作。 –