假设我在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)
我们可以做到这一点吗? 如果可能请帮助我!
答案 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)
}
})