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



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

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

在上面的代码中,我试图得到一个具有值的rdd:->值,键作为单个值进入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)

我们能做到吗?如果可能的话,请帮助我!

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)
    }
  })

最新更新