0

J'essaie d'ajouter un nom de fichier d'entrée pour chaque ligne lors du chargement du fichier xml via le format com.databricks.spark.xml. Mais il retourne la colonne vide pour le nom de fichier .. Ci-dessous l'extrait de code. J'utilise la fonction input_file_namenom_fichier_entrée ne fonctionne pas dans 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| | +------------+-----------+---------------+--------+

J'ai essayé avec différentes manières, mais il renvoie le nom de fichier vide lorsque vous utilisez com.databricks.spark.xml.

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

Cependant, il fonctionne bien lorsque vous faites une charge de trame de données normale pour les fichiers texte. Veuillez nous aider.

Répondre

0

Peut-être,

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

Si cela ne fonctionne pas, vérifier est la fonction « input_file_name() » a bien fonctionné dans tous les exécuteurs, non seulement nœud pilote.

+0

Salut, veuillez vérifier ma question. Son à propos de input_file_name() ne fonctionne pas dans le traitement spark-xml –

+0

Désolé, dans le paquet de fonction de message initial n'a pas été mentionné. – pasha701