如何将列附加到数据框并将文件名插入列中?我能够使用以下代码删除标题并转换为数据框:
我有2个文件如下:
file1.csv:
name:file1
dept: hr
id,name,age
1,ss,34
2,rr,35
3,aa,44
file2.csv:
name:file2
dept: hr
id,name,age
1,ps,34
2,er,35
3,qa,44
val ofcFile = sc.wholeTextFiles("file:///root/ofc/dataset").flatMap(_._2.split("\n").drop(3))
case class ofc_str(id : String, name: String, age : String)
val DF = houseFile.map(_.split(",")).map(p => ofc_str(p(0).toString,p(1).toString,p(2).toString)).toDF()
DF.show
+--+----+---+
|id|name|age|
+--+----+---+
|1 | ss | 34|
|2 | rr | 35|
|3 | aa | 44|
|1 | ps | 34|
|2 | er | 35|
|3 | qa | 44|
但是,我无法识别我从哪个文件获取的记录,所以如何针对每条记录获取文件名并将其插入到DF的新列文件名中。
答案 0 :(得分:0)
正如评论中所建议的那样尝试:
sc.wholeTextFiles("file:///root/ofc/dataset")
.flatMapValues(_.split("\n").drop(3))
.mapValues(p => ofc_str(p(0).toString,p(1).toString,p(2).toString))
.toDF()