2016-09-26 17 views
2

SparkでXMLファイルを解析する方法を知る必要があります。私はカフカからストリーミングデータを受信して​​おり、そのストリームデータを解析する必要があります。Apache SparkでXMLデータを解析する

directKafkaStream.foreachRDD(rdd ->{ 
      rdd.foreach(s ->{ 
       System.out.println("&&&&&&&&&&&&&&&&&" +s._2); 
      }); 

と結果:

<root> 
<student> 
<name>john</name> 
<marks>90</marks> 
</student> 
</root> 

これらのXML要素を渡す方法をここで

は、データを受信するために私のスパークのコードですか?

+1

あなたはこれに関する前の質問を検索しましたか?そのような:http://stackoverflow.com/questions/33078221/xml-processing-in-spark –

+0

@ Binary Nerd、応答ありがとう。私のスパークアプリケーションは、行単位でデータを読み込んでいます。ですから、私は開始要素と終了要素を使わずに行ごとに解析する必要があります。 – user6325753

答えて

3

みんなありがとう...問題解決しました。 解決策は次のとおりです。

String xml = "<name>xyz</name>"; 
DOMParser parser = new DOMParser(); 
try { 
    parser.parse(new InputSource(new java.io.StringReader(xml))); 
    Document doc = parser.getDocument(); 
    String message = doc.getDocumentElement().getTextContent(); 
    System.out.println(message); 
} catch (Exception e) { 
    // handle SAXException 
} 
+0

これはSparkのBig Dataで機能しますか? –

+0

@MasudRahman、上記のリンクをご覧くださいhttps://stackoverflow.com/questions/33078221/xml-processing-in-spark/40653300#40653300 – user6325753

2

ストリーミングデータを処理する場合、xmlデータ処理用にdatabricksのspark-xml libを使用すると便利です。

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

+0

お返事ありがとうございます。私のスパークアプリケーションは、行単位でデータを読み込んでいます。ですから、私は開始要素と終了要素を使わずに行ごとに解析する必要があります。 – user6325753

+0

私はこれと数時間を過ごしました。それから自己閉鎖の行を読んでいないことがわかりました。 –

関連する問題