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