【发布时间】:2017-06-23 10:14:32
【问题描述】:
经过几次转换,这是我拥有的 RDD 的输出:
( z287570731_serv80i:7:175 , 5:Re )
( p286274731_serv80i:6:100 , 138 )
( t219420679_serv37i:2:50 , 5 )
( v290380588_serv81i:12:800 , 144:Jo )
( z292902510_serv83i:4:45 , 5:Re )
使用此数据作为输入 RDD,我想提取两个分号之间的值。
例如:
Input = ( z287570731_serv80i:7:175 , 5:Re )
Output = 7 (:7:)
这就是我正在尝试的方式
val processedRDD = tid.map{
case (inString, inInt) =>
val RegEx = """.*:([\d.]+):.*""".r
val table_level = RegEx.findFirstIn(inString)
}
processedRDD.collect().foreach(println)
这是我得到的输出:
()
()
()
()
()
()
()
Spark-way 怎么做?
【问题讨论】:
-
Jamie Zawinski 的这句话必须说:有些人在遇到问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。
-
我是一般编程以及 Scala 和 Spark 的新手。请提出更好/更有效的解决方案。
-
我会选择@shankar Koirala 的解决方案。
-
你使用什么 Spark 版本?
-
2.1.1 @ Jacek Laskowski
标签: scala apache-spark rdd