0

我试图通过com.databricks.spark.xml格式加载xml文件时为每一行添加输入文件名。但它返回空列的文件名..下面是代码片段。我使用input_file_name功能input_file_name不在spark-xml中工作

sqlContext.read.format("com.databricks.spark.xml"). option("rowTag", "BO_RECORD"). load("file:///<path>/*"). withColumn("filename",input_file_name()).show()

+------------+-----------+---------------+--------+ |TicketRefund|TicketsSold|_corrupt_record|filename| +------------+-----------+---------------+--------+ | 0| 3| null| | | 0| 1| null| | | 0| 18| null| | | 0| 22| null| | | 0| 3| null| | +------------+-----------+---------------+--------+

我用不同的方式尝试,但它仍然使用com.databricks.spark.xml时返回空文件名。

sqlContext.read.format("com.databricks.spark.xml"). option("rowTag", "BO_RECORD"). load("file:///<path>/*").select(input_file_name()).show()

但是它做的文本文件正常数据帧时,负载工作良好。 请帮忙。

回答

0

也许,

import org.apache.spark.sql.functions._ 
... .withColumn("filename",lit("anyFileName")). .. 

如果它不会工作,检查功能“input_file_name()”中的所有执行人工作得很好,不仅司机节点。

+0

嗨,请检查我的问题。其关于input_file_name()在spark-xml处理中不起作用 –

+0

抱歉,在初始消息函数包中没有提到。 – pasha701