2016-05-31 34 views
0

我想將xml文件轉換爲avro。數據將以xml格式顯示,並且首先會顯示kafka主題。然後,我可以使用flume或spark-streaming來接收並從xml轉換爲avro,並將文件轉換爲hdfs。我有一個cloudera環境。通過火花流或水槽將Xml轉換爲Avro從卡夫卡轉換爲hdfs

當avro文件遇到hdfs時,我希望能夠稍後將它們讀入配置單元表。

我想知道什麼是最好的方法來做到這一點?我嘗試過自動模式轉換,如spark-avro(這是沒有spark-streaming),但問題是spark-avro轉換數據,但hive無法讀取它。 Spark avro將xml轉換爲數據框,然後從數據框轉換爲avro。 avro文件只能被我的spark應用程序讀取。我不知道我是否正確使用了這個。

我想我需要爲avro模式定義一個顯式模式。不知道如何去做這個XML文件。它有多個名稱空間,並且非常龐大。

回答

0

如果你是在cloudera(因爲你有水槽,你可以擁有它),你可以使用morphline在記錄級別上進行轉換。您可以使用批次/流媒體。你可以看到here瞭解更多信息。

+0

你知道morphline是否可以讀取xml然後轉換爲avro? – Defcon

+0

Morphline可以讀取xml內容,並且可以寫入avro。沒有直接的轉換命令給你的用例。要麼你可以研究morphline的使用情況,或者可以計劃一個map reduce/spark job來讀取每個文件/記錄並轉換爲avro。 Morphline已經可以批量使用和使用水槽了。 – Ramzy

相關問題