Hi Amol,

Not sure I understand completely your question, but the SQL function "explode" may help you:
http://spark.apache.org/docs/latest/api/python/pyspark.sql.html#pyspark.sql.functions.explode

Here you can find a nice example:
https://stackoverflow.com/questions/38210507/explode-in-pyspark

HTH,
Judit

On 29/06/17 09:05, ayan guha wrote:
Hi

Not sure if I follow your issue. Can you please post output of books_inexp.show()?

On Thu, Jun 29, 2017 at 2:30 PM, Talap, Amol <amol.ta...@capgemini.com <mailto:amol.ta...@capgemini.com>> wrote:

    Hi:

    We are trying to parse XML data to get below output from given
    input sample.

    Can someone suggest a way to pass one DFrames output into load()
    function or any other alternative to get this output.

    Input Data from Oracle Table XMLBlob:

    *SequenceID*

        

    *Name*

        

    *City*

        

    *XMLComment*

    1

        

    Amol

        

    Kolhapur

        

    
<books><Comments><Comment><Title>Title1.1</Title><Description>Description_1.1</Description><Comment><Title>Title1.2</Title><Description>Description_1.2</Description><Comment><Title>Title1.3</Title><Description>Description_1.3</Description></Comment></Comments></books>

    2

        

    Suresh

        

    Mumbai

        

    
<books><Comments><Comment><Title>Title2</Title><Description>Description_2</Description></Comment></Comments></books>

    3

        

    Vishal

        

    Delhi

        

    
<books><Comments><Comment><Title>Title3</Title><Description>Description_3</Description></Comment></Comments></books>

    4

        

    Swastik

        

    Bangalore

        

    
<books><Comments><Comment><Title>Title4</Title><Description>Description_4</Description></Comment></Comments></books>

    Output Data Expected using Spark SQL:

    *SequenceID*

        

    *Name*

        

    *City*

        

    *Title*

        

    *Description*

    1

        

    Amol

        

    Kolhapur

        

    Title1.1

        

    Description_1.1

    1

        

    Amol

        

    Kolhapur

        

    Title1.1

        

    Description_1.2

    1

        

    Amol

        

    Kolhapur

        

    Title1.3

        

    Description_1.3

    2

        

    Suresh

        

    Mumbai

        

    Title2

        

    Description_2

    3

        

    Vishal

        

    Delhi

        

    Title3.1

        

    Description_3.1

    4

        

    Swastik

        

    Bangalore

        

    Title4

        

    Description_4

    I am able to parse single XML using below approach in spark-shell
    using example below but how do we apply the same recursively for
    all rows ?

    
https://community.hortonworks.com/questions/71538/parsing-xml-in-spark-rdd.html
    
<https://community.hortonworks.com/questions/71538/parsing-xml-in-spark-rdd.html>.



    val dfX =
    
sqlContext.read.format("com.databricks.spark.xml").option("rowTag","book").load("books.xml")

    val xData = dfX.registerTempTable("books")

    dfX.printSchema()

    val books_inexp =sqlContext.sql("select title,author from books
    where price<10")

    books_inexp.show

    Regards,

    Amol

    This message contains information that may be privileged or
    confidential and is the property of the Capgemini Group. It is
    intended only for the person to whom it is addressed. If you are
    not the intended recipient, you are not authorized to read, print,
    retain, copy, disseminate, distribute, or use this message or any
    part thereof. If you receive this message in error, please notify
    the sender immediately and delete all copies of this message.




--
Best Regards,
Ayan Guha

Reply via email to