在应用程序中,我们读取多个csv文件,选择一些字段,然后将其写入单个csv中。
对于所写的每一行,我们需要知道它来自哪个文件。有一个内置的input_file_name()函数不适用于我们:
df...
.withColumn("inputfilename_", input_file_name())
在生成的文件中,始终有:
"inputfilename_":""
我们将spark 2.1.0与纱线一起使用。您有任何想法如何使其工作吗?
答案 0 :(得分:0)
我正在读取CSV,然后加入另一个数据框,然后选择inputfilename(),但是那不起作用(在集群模式下,但是在本地!)。
现在使用
df.withColumn("inputfilename_", input_file_name())
.join(...)
.select($"inputfilename_")
在连接之前查找输入文件名,效果很好