假设我在数据集目录中有两个文件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)
}
})