Как создать дочерний фрейм данных из XML-файла с помощью Pyspark? - PullRequest
0 голосов
/ 14 марта 2019

У меня есть все те библиотеки поддержки в pyspark, и я могу создать фрейм данных для родителя -

def xmlReader(root, row, filename):

  df = spark.read.format("com.databricks.spark.xml").options(rowTag=row,rootTag=root).load(filename)
  xref = df.select("genericEntity.entityId", "genericEntity.entityName","genericEntity.entityType","genericEntity.inceptionDate","genericEntity.updateTimestamp","genericEntity.entityLongName")
  return xref 

df1 = xmlReader("BOBML","entityTransaction","s3://dev.xml")

df1.head()

Я не могу создать дочерний фрейм данных -

def xmlReader(root, row, filename):

  df2 = spark.read.format("com.databricks.spark.xml").options(rowTag=row, rootTag=root).load(filename)
  xref = df2.select("genericEntity.entityDetail", "genericEntity.entityDetialId","genericEntity.updateTimestamp")
  return xref

df3 = xmlReader("BOBML","s3://dev.xml")

df3.head()

Я неполучить какой-либо вывод, и я планировал объединить родительский и дочерний фрейм данных.Любая помощь будет по достоинству оценена!

1 Ответ

0 голосов
/ 16 марта 2019

После более чем 24 часов я смог решить проблему, и спасибо всем, кто хотя бы взглянул на мою проблему.

Решение:

Шаг 1: Загрузить пару библиотек

из pyspark.sql import SparkSession

из pyspark.sql import SQLContext

sqlContext = SQLContext (sc)

Step2 (Parents): чтение XML-файлов, печать схемы, регистрация временных таблиц и создание кадра данных.

Шаг 3 (дочерний): повторите шаг 2.

Шаг 4. Создайте окончательный Dataframe, объединив дочерние и родительские кадры данных.

Шаг 5: загрузить данные в S3 (write.csv / S3: // Path) или в базу данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...