如何将键附加到{Key,Value}对RDD的值以及如何将其转换为rdd?

时间:2016-08-11 14:14:34

标签: scala apache-spark apache-spark-sql spark-dataframe bigdata

假设我在file1中有2个文件,在数据集目录中有file2:

val file = sc.wholeTextFiles("file:///root/data/dataset").map((x,y) => y + "," + x)

在上面的代码我试图得到一个有价值的rdd: - > value,key作为单个值进入rdd

假设文件名是file1并说出2条记录:

file1:

1,30,ssr

2,43,svr

并且

file2:

1,30,psr

2,43,pvr

所需的rdd输出为:

(1,30,ssr,file1),(2,43,svr,file1),(1,30,psr,file2),(2,43,pvr,file2)

我们可以做到这一点吗? 如果可能请帮助我!

1 个答案:

答案 0 :(得分:0)

var files = sc.wholeTextFiles("file:///root/data/dataset")

var yourNeededRdd = files
  .flatMap({
    case (filePath, fileContent) => {
      val fileName = filePath.split('/).last
      fileContent.split("\n").map(line => line + "," + fileName)
    }
  })