2016-10-24 57 views
0

我是Apache Flink和分佈式處理的新手。我已經通過Flink快速安裝指南並瞭解MapFunctions的基礎知識。 但我無法找到一個XML處理的具體例子。 我已閱讀Hadoops XmlInputFormat,但無法理解如何使用它。使用Apache Flink進行XML處理

我需要的是, 我有如下格式的巨大(100MB)的XML文件,

<Class> 
    <student>.....</student> 
    <student>.....</student> 
    . 
    . 
    . 
    <student>.....</student> 
</Class> 

的弗林克處理器將讀取HDFS文件並開始處理它(基本上是通過所有的學生元素迭代)

我想知道(通俗地說),我該如何處理學生對象的xml和creata列表。

一個更簡單的外行的解釋,將不勝感激

回答

0

的Apache Mahout中的XmlInputFormat爲Apache Hadoop的提取兩個標記之間的文本(在你的情況可能<student></student>)。 Flink提供了使用Hadoop InputFormats的包裝,例如,通過readHadoopFile()方法ExecutionEnvironment

如果您不想使用XmlInputFormat,並且您的XML文件格式良好,即每個學生記錄都在一行中,則可以使用Flink的常規TextInputFormat,它可逐行讀取文件。隨後的FlatMap函數可以解析所有學生行並過濾掉所有其他行。