如何将嵌套的Json消息从Kafka主题解析为hive

时间:2016-10-14 15:39:50

标签: json scala hadoop apache-spark

我很惹新流媒体和scala。我有一个来自kafka主题的Json数据和一些其他随机日志数据。我能够像这样过滤出json数据

val messages = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topicsSet).map(_._2).filter (x => x.matches("^[{].*" ))

我的json数据看起来像这样。

{"time":"125573","randomcol":"abchdre","address":{"city":"somecity","zip":"123456"}}

我试图解析json数据并将其放入hive表中。 有人可以指出我正确的方向。 感谢

1 个答案:

答案 0 :(得分:0)

有多种方法可以做到这一点。

  1. 创建一个包含所需列的外部配置单元表,并指向此数据位置。
  2. 创建表时,可以使用默认的JSON serde,然后使用get_json_object hive函数并将此原始数据加载到最终表中。有关功能详情,请参阅this
  3. OR

    您可以尝试使用av​​ro serde并根据您的json消息提及avro架构以创建hive表。有关avro serde示例,请参阅this

    希望有所帮助