【发布时间】:2019-01-18 01:35:40
【问题描述】:
我有一个监听 Kafka 主题的 Spark 流应用程序。
获取数据时,我需要对其进行处理并发送到 Kudu。
目前我正在使用org.apache.kudu.spark.kudu.KuduContext API 并使用数据框调用插入操作。
为了从我的数据创建数据框,我需要调用collect(),以便我可以使用 sqlContext 创建数据框。
有没有办法在不调用collect() 的情况下创建数据框/将数据插入 Kudu,这当然很昂贵?
我们使用的是 Spark 1.6
【问题讨论】:
-
您是否考虑过为此使用 Kafka Connect?
-
我不熟悉这个,会读一下,谢谢。
-
在 kafka connect 中,我们可以定义如何转换主题数据的过程吗?在我们的例子中,我们需要在数据准备好用于 kudu 之前进行一些计算和处理。
-
要遵循的模式是流处理应用程序(例如 Kafka Streams、KSQL 等)将转换应用于数据并将其写回 Kafka 主题。然后,Kafka Connect 将该主题流式传输到目标。职责分离 - 更易于开发、操作、扩展等 :)
标签: apache-spark apache-kafka spark-streaming apache-kudu