通过spark streaming或flume将Xml从Kafka转换为Avro到hdfs

时间:2016-05-31 16:30:33

标签: apache-spark apache-kafka spark-streaming avro spark-avro

我想将xml文件转换为avro。数据将采用xml格式,并将首先点击kafka主题。然后,我可以使用flume或spark-streaming来摄取并从xml转换为avro并将文件放在hdfs中。我有一个cloudera环境。

当avro文件命中hdfs时,我希望以后能够将它们读入hive表。

我想知道这样做的最佳方法是什么?我已经尝试过自动模式转换,例如spark-avro(这没有火花流)但问题是spark-avro转换数据但是hive无法读取它。 Spark avro将xml转换为数据帧,然后从dataframe转换为avro。 avro文件只能由我的spark应用程序读取。我不确定我是否正确使用它。

我想我需要为avro架构定义一个显式模式。不知道如何为xml文件执行此操作。它有多个名称空间,非常庞大。

1 个答案:

答案 0 :(得分:0)

如果您使用cloudera(因为你有水槽,可能你有它),你可以使用morphline来处理记录级别的转换。您可以使用批处理/流式传输。您可以查看here了解详情。