Пытаюсь сделать что-то, что могло бы читать в больших XML файлах и преобразовывать их в искровые данные для дальнейшей обработки.
То, что я использовал изначально:
xml_rdd = sc.wholeTextFile("xml_file.xml")
xml_rdd.map(lambda x: xmltodict(x))
сохранение содержимое этого rdd в json и затем считывает его как json файл. Это кажется довольно неэффективным, поэтому я пытался найти лучший способ сделать это.
Метод искры:
df = spark.read \
.format('xml') \
.options(rowTag='row', rootTag = 'root') \
.load('xml_file.xml')
похоже, что он будет работать намного быстрее, но требует, чтобы вы указали строка и тег root. Есть ли способ в Pyspark автоматически определять root и rowtag?