【问题标题】:Does Spark streaming process every JSON "event" individually when reading from Kafka?从 Kafka 读取时,Spark 流式处理是否单独处理每个 JSON“事件”?
【发布时间】:2018-11-08 22:07:15
【问题描述】:

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

是否可以在内存中将多个组分组,每个组由一堆相似的模式事件组成,然后将每个组作为一个整体处理?

【问题讨论】:

  • 我建议 1) 对主题中的每条消息使用类似的架构 2) Avro 可以比 JSON 更好地帮助您

标签: json apache-spark apache-kafka


【解决方案1】:

parquet 和 avro 等对象格式非常适合这个原因,因为架构在标头中可用。如果您绝对必须使用 JSON,那么您可以按照您所说的做,并在转换为您想要的对象时使用 group-by-key。如果您使用的是大型 JSON 对象,那么您将看到性能下降,因为必须先解析整个 JSON“文件”,然后才能进行任何对象解析。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 1970-01-01
      • 2018-02-25
      • 2019-10-03
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多