通过火花流将 Xml 转换为 Avro 从 Kafka 到 hdfs 或 flume
Convert Xml to Avro from Kafka to hdfs via spark streaming or flume
我想将 xml 个文件转换为 avro。数据将采用 xml 格式,并将首先命中 kafka 主题。然后,我可以使用 flume 或 spark-streaming 来摄取并从 xml 转换为 avro,并将文件放入 hdfs。我有一个cloudera环境。
当 avro 文件命中 hdfs 时,我希望能够稍后将它们读入配置单元表。
我想知道执行此操作的最佳方法是什么?我已经尝试过自动模式转换,例如 spark-avro(这是没有 spark-streaming 的)但问题是 spark-avro 转换数据但配置单元无法读取它。 Spark avro 将 xml 转换为数据帧,然后从数据帧转换为 avro。 avro 文件只能由我的 spark 应用程序读取。我不确定我是否正确使用它。
我想我需要为 avro 模式定义一个显式模式。不确定如何处理 xml 文件。它有多个名称空间并且非常庞大。
如果您在使用 cloudera(因为您有 flume,可能您有),您可以使用 morphline 在记录级别进行转换。您可以使用 batch/streaming。您可以查看 here 了解更多信息。
我想将 xml 个文件转换为 avro。数据将采用 xml 格式,并将首先命中 kafka 主题。然后,我可以使用 flume 或 spark-streaming 来摄取并从 xml 转换为 avro,并将文件放入 hdfs。我有一个cloudera环境。
当 avro 文件命中 hdfs 时,我希望能够稍后将它们读入配置单元表。
我想知道执行此操作的最佳方法是什么?我已经尝试过自动模式转换,例如 spark-avro(这是没有 spark-streaming 的)但问题是 spark-avro 转换数据但配置单元无法读取它。 Spark avro 将 xml 转换为数据帧,然后从数据帧转换为 avro。 avro 文件只能由我的 spark 应用程序读取。我不确定我是否正确使用它。
我想我需要为 avro 模式定义一个显式模式。不确定如何处理 xml 文件。它有多个名称空间并且非常庞大。
如果您在使用 cloudera(因为您有 flume,可能您有),您可以使用 morphline 在记录级别进行转换。您可以使用 batch/streaming。您可以查看 here 了解更多信息。