繁体   English   中英

如何将RDD [(String,String)]转换为RDD [Array [String]]?

[英]How to convert RDD[(String, String)] into RDD[Array[String]]?

我试图将文件名附加到文件中的每个记录。 我想如果RDD是Array,那我就很容易做到。

转换RDD类型或解决此问题的一些帮助将非常感谢!

在(String,String)类型中

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)]转换为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) }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM