Apache Spark XML в JavaRDD - PullRequest
       30

Apache Spark XML в JavaRDD

1 голос
/ 03 апреля 2019

Я попытался прочитать xml-файл с помощью spark и превратить его в массив JavaRDD.Я читал о том, как превратить его в DataSet, но я хотел знать, возможно ли это с помощью JavaRDD.Я должен отметить, что в моем XML-файле есть список, который не всегда имеет одинаковый размер.Вот пример моего файла XML.

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<logs>
    <log>
        <id>1</id>
        <clientId>1</clientId>
        <date>Wed Apr 03 21:16:18 EEST 2019</date>
        <itemList>
            <item>2</item>
        </itemList>
    </log>
    <log>
        <id>2</id>
        <clientId>2</clientId>
        <date>Wed Apr 03 21:16:19 EEST 2019</date>
        <itemList>
            <item>1</item>
            <item>2</item>
            <item>3</item>
        </itemList>
    </log>
</logs>

Спасибо!

1 Ответ

0 голосов
/ 04 апреля 2019

Вот возможное решение: https://github.com/databricks/spark-xml/issues/213

Вот что вам нужно:

import com.databricks.spark.xml.XmlReader

val rdd = sc.parallelize(Seq("<books><book>book1</book><book>book2</book></books>"))
val df = new XmlReader().xmlRdd(spark.sqlContext, rdd)
df.show

+--------------+
|          book|
+--------------+
|[book1, book2]|
+--------------+

df.printSchema

root
 |-- book: array (nullable = true)
 |    |-- element: string (containsNull = true)

от rdd до JavaRDD довольно прост. (wrapRdd, смотрите в документации).

Надеюсь, он ответил на ваш вопрос.

...