我需要以下场景的帮助:
我将从kafka获取以下json格式的数据,以触发流式传输
{"id" : 1 , "data" : "AFGH00101219"}
{"id" : 2 , "data" : "AFGH00101215"}
{"id" : 2 , "data" : "AFGH00101216"}
{"id" : 3 , "data" : "AFGH00101218"}
val messages= KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topics)
现在我要处理消息中的每个json记录,每个记录依次返回一组记录。请给我一些想法来完成下面的任务。
val output = messages.map(row =>
{
//here I will get each json record. My doubt is how to extract id and data
//filed values from row and store it into variables.
//Here I need to decode the data filed value which is in hexa decimal format
//to decimal format.
}
提前谢谢。如果问题不清楚,请告诉我。
1条答案
按热度按时间5us2dqdw1#
您可以使用googlegson或任何json解析库,我使用googlegson解析spark streaming中接收到的json数据,如下所示。
另一种方法是从接收到的rdd创建Dataframe
这将从rdd创建一个Dataframe,如下所示,您不能将id和数据用于任何其他转换/操作。
我希望这有帮助!