How to read XML files from apache spark framework?

后端 未结 2 692
梦毁少年i
梦毁少年i 2021-02-08 16:02

I did come across a mini tutorial for data preprocessing using spark here: http://ampcamp.berkeley.edu/big-data-mini-course/featurization.html

However, this discusses on

相关标签:
2条回答
  • 2021-02-08 16:40

    It looks like somebody made an xml datasource for apache-spark.

    https://github.com/databricks/spark-xml

    This supports to read XML files by specifying tags and infer types e.g.

    import org.apache.spark.sql.SQLContext
    
    val sqlContext = new SQLContext(sc)
    val df = sqlContext.read
        .format("com.databricks.spark.xml")
        .option("rowTag", "book")
        .load("books.xml")
    

    You can also use it with spark-shell as below:

    $ bin/spark-shell --packages com.databricks:spark-xml_2.11:0.3.0
    
    0 讨论(0)
  • 2021-02-08 16:58

    I have not used it myself, but the way would be same as you do it for hadoop. For example you can use StreamXmlRecordReader and process the xmls. The reason you need a record reader is you would like to control the record boundries for each element processed otherwise the default used would process line because it uses LineRecordReader. It would be helpful to get yourself more familiar with concept of recordReader in hadoop.

    And ofcourse you will have to use SparkContext's hadoopRDD or hadoopFile methods with option to pass a InputFormatClass. Incase java is your preferred language, similar alternatives exist.

    0 讨论(0)
提交回复
热议问题