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

How to append keys to values for {Key,Value} pair RDD and How to convert it to an rdd?

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

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