如何直接从kafka队列读取数据后创建spark数据帧

时间:2016-09-19 18:35:16

标签: apache-spark apache-spark-sql pyspark-sql

来自kafka队列的数据将是一行界定的json字符串,如下所示

{ “报头”:{ “平台”: “大气压”, “信息类型”: “1”, “版本”: “1.0”}, “详细信息”:[{ “BCC”: “5814”,“DSRC “:” A”, “辅助”: “5678”},{ “BCC”: “5814”, “DSRC”: “A”, “中间”: “0003”},{ “BCC”: “5812”, “DSRC”: “A”, “中间”: “0006”}]}

{ “报头”:{ “平台”: “大气压”, “信息类型”: “1”, “版本”: “1.0”}, “详细信息”:[{ “BCC”: “5814”,“DSRC “:” A”, “辅助”: “1234”},{ “BCC”: “5814”, “DSRC”: “A”, “中间”: “0004”},{ “BCC”: “5812”, “DSRC”: “A”, “中间”: “0009”}]}

{ “报头”:{ “平台”: “大气压”, “信息类型”: “1”, “版本”: “1.0”}, “详细信息”:[{ “BCC”: “5814”,“DSRC “:” A”, “辅助”: “1234”},{ “BCC”: “5814”, “DSRC”: “A”, “中间”: “0004”},{ “BCC”: “5812”, “DSRC”: “A”, “中间”: “0009”}]}

我们如何在python中为上述输入创建数据帧?我有很多列来访问上面只是一个样本,数据总共有23列。对此的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在寻找pyspark.sql.SQLContext.jsonRDD。由于Spark流是批量处理的,因此您的流对象将返回一系列RDD,每个RDD都可以通过jsonRDD制作DF。