【发布时间】:2016-08-12 03:07:39
【问题描述】:
如何将列附加到数据框并将文件名插入列?我能够使用以下代码删除标题并转换为数据帧:
我有 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 中的新列文件名中。
【问题讨论】:
-
这可能实现吗......请帮助我!
-
平面地图时不要丢文件名?
-
@zero323 感谢您的回复! ...我在文件中有文件名...那么我们如何将该行作为数据放入数据帧中作为 file_name 列......而不是 drop 我该如何实现它
-
@zero323,如果我们不删除标题,我如何将其转换为数据框..
-
提示:flatMapValues -> mapValues(例如)
标签: scala apache-spark apache-spark-sql spark-dataframe