[英]spark join: parenthesis issue
我正在加入两个RDD。
样本文件1数据:
245216 123422,187,235,742,1635,5600,2782,52,140943
示例文件2数据:
281216 12433,308,454,27862,2693,4578,138812,567,20,716
现在这里是代码:
rdd1 = sc.textFile("file1").map(_.split("\t")).map(line => (line(0), line(1)))
rdd2 = sc.textFile("file2").map(_.split("\t")).map(line => (line(0), line(1)))
val merged = rdd1.join(rdd2)
o / p是k,(v),我想在进行进一步处理时消除该值附近的括号。 我尝试了一些事情,包括
val merged_no_paren = merged.map { case (k, (v)) => (k, v) }
我还保存了结果:
merged_no_paren.map{case x=>s"${x._1}\t${x._2}"}.saveAsTextFile("merged")
不幸的是,结果始终采用以下格式:
100 (1,50,200)
120 (2,25,789)
....
我希望他们是:
100 1,50,200
120 2,25,789
加入后,您的RDD的类型为RDD[(String, (String, String))]
。 如果仅打印(String, String)
,则打印时带有括号。 但是您可以将其拆开并按照自己喜欢的方式打印。
scala> val s = Seq(("1", ("2", "3")))
s: Seq[(String, (String, String))] = List((1,(2,3)))
scala> for (e <- s) println(e)
(1,(2,3))
scala> for ((k, v) <- s) println(s"$k $v")
1 (2,3)
scala> for ((k, (v1, v2)) <- s) println(s"$k $v1,$v2")
1 2,3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.