当从Kafka读取时,Spark流是否单独处理每个JSON“事件”?

时间:2018-05-30 06:54:03

标签: json apache-spark apache-kafka

我想使用Spark流来从JSON格式的单个Kafka主题消息中读取,但并非所有事件都具有类似的架构。如果可能,检查每个事件的架构并相应地处理它的最佳方法是什么?

是否可以在内存中分组几个组,每个组由一堆类似的模式事件组成,然后将每个组作为批量处理?

2 个答案:

答案 0 :(得分:0)

我担心你做不到。您需要以某种方式解码您的JSON消息以识别模式,这将在您的Spark代码中完成。但是,您可以尝试使用每个架构的不同值填充Kafka消息密钥,并为每个密钥分配Spark分区。

答案 1 :(得分:0)

像parquet和avro这样的对象格式很好,因为标题中有架构。如果你绝对必须使用JSON,那么你可以按照你的说法去做,并在转换到你想要的对象时逐个使用。如果您使用大型JSON对象,那么您将看到自整个JSON"文件"以来的性能损失。必须在任何对象解析之前进行解析。