我正在尝试将文件名附加到文件中的每个记录。我想如果 RDD 是数组的话我会很容易做到。
对于转换 RDD 类型或解决此问题的一些帮助,我们将不胜感激!
在(字符串,字符串)类型中
scala> myRDD.first()(1)
scala><console>:24: error: (String, String) does not take parametersmyRDD.first()(1)
在数组(字符串)中
scala> myRDD.first()(1)
scala> res1: String = abcdefgh
我的功能:
def appendKeyToValue(x: Array[Array[String]){
for (i<-0 to (x.length - 1)) {
var key = x(i)(0)
val pattern = new Regex("\\.")
val key2 = pattern replaceAllIn(key1,"|")
var tempvalue = x(i)(1)
val finalval = tempvalue.split("\n")
for (ab <-0 to (finalval.length -1)){
val result = (I am trying to append filename to each record in the filekey2+"|"+finalval(ab))
}
}
}
如果你有一个RDD[(String, String)]
,您可以通过调用访问第一个元组的第一个元组字段
val firstTupleField: String = myRDD.first()._1
如果你想转换一个RDD[(String, String)]
into a RDD[Array[String]]
你可以执行以下操作
val arrayRDD: RDD[Array[String]] = myRDD.map(x => Array(x._1, x._2))
您还可以使用偏函数来解构元组:
val arrayRDD: RDD[Array[String]] = myRDD.map { case (a,b) => Array(a, b) }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)