当我需要从列表中获取行并将其拆分时,我有下面的场景。如何将RDD [List [String]]转换为字符串并将其拆分
scala> var nonErroniousBidsMap = rawBids.filter(line => !(line(2).contains("ERROR_") || line(5) == null || line(5) == ""))
nonErroniousBidsMap: org.apache.spark.rdd.RDD[List[String]] = MapPartitionsRDD[108] at filter at <console>:33
scala> nonErroniousBidsMap.take(2).foreach(println)
List(0000002, 15-04-08-2016, 0.89, 0.92, 1.32, 2.07, , 1.35)
List(0000002, 11-05-08-2016, 0.92, 1.68, 0.81, 0.68, 1.59, , 1.63, 1.77, 2.06, 0.66, 1.53, , 0.32, 0.88, 0.83, 1.01)
scala> val transposeMap = nonErroniousBidsMap.map(rec => (rec.split(",")(0) + "," + rec.split(",")(1) + ",US" + "," + rec.split(",")(5)))
<console>:35: error: value split is not a member of List[String]
val transposeMap = nonErroniousBidsMap.map(rec => (rec.split(",")(0) + "," + rec.split(",")(1) + ",US" + "," + rec.split(",")(5)))
^
我收到上面显示的错误。 你能帮我解决这个问题吗?
谢谢。
请把你的代码中的代码格式使其更易于阅读。如果你不知道如何,你可以突出显示代码并按Cmd + K或Ctrl + K。 – victor