如何从scala spark-shell数组中读取字符串[String]

时间:2015-12-08 20:45:11

标签: scala

我有一个XML文件,我试图使用Scala通过Spark-Shell进行处理。我被困在需要使用Scala&#39>读取Array [String]的位置

scala> val fileRead = sc.textFile("source_file")
fileRead: org.apache.spark.rdd.RDD[String] = source_file MapPartitionsRDD[8] at textFile at <console>:21

scala> val strLines = fileRead.map(x => x.toString)
strLines: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[9] at map at <console>:23

scala> val fltrLines = strLines.filter(_.contains("<record column1="))
fltrLines: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[10] at filter at <console>:25

scala> fltrLines.take(5)
res1: Array[String] = Array("<record column1="1" column2="1" column3="5" column4="2010-11-02T18:59:01.140" />", "<record column2=....

我需要读取Array [String]的这个值:

"<record column1="1" column2="1" column3="5" column4="2010-11-02T18:59:01.140" />"

作为XML,以便我可以使用Scala Elem和NodeSeq类来提取数据。所以我想做一些事情:

val xmlLines = fltrLines.....somehow get the value of the value of Array[String] first index

然后使用xmlLines.attributes等

1 个答案:

答案 0 :(得分:2)

您可以执行fltrLines.map { scala.xml.XML.loadString _ },这应该使用字符串构建Elem。检查docs,注意这是一个旧的Scaladoc,当Scala std时。库。仍然包含XML,现在它驻留在一个单独的jar文件中。因此,如果您使用的是较新版本,请确保将正确的jar放在类路径中。