我在一个文本文件中有一个ID列表= id1,id2,id3等
val IDList = sc.textFile("/home/.../IDList.csv").flatMap(line => line.split(","))
每个id与一个仓库中的csv数据帧相关联: “ / home / data /” + idX +“ / *。csv”
对于IDList中的每个ID,o都希望读取并处理数据
我试图做这样的事情而没有结果:
val IDList = sc.textFile("/home/.../IDList.csv").flatMap(line => line.split(","))
IDList.map(x => {
val path = "/home/data" + x + "/*.csv"
val dataFrame = sparkSession.read.format("csv").option("header", "true").load(path)
.withColumn().filter()blablabla
// save
dataFrame.repartition(1).write.format("csv").option("header","true").save("/home/g179887/Desktop/test")
})
感谢帮助
答案 0 :(得分:0)
您应使用scala parallel collections
存储ID列表,并使用spark
读取文件内容。这样,spark可以读取内容
并同时操作多个文件。
import scala.io.Source
val IDList = Source.fromFile("/home/.../IDList.csv").getLines.toList.par
.map()
的内容可以保持不变。