Создание сообщения типа Avro в кадре данных spark sql 2.4.4 на Kafka - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь написать сообщения Avro в Kafka в искре SQL. Может кто-нибудь подсказать, как это реализовать в java? Я нашел справочный код scala, но не Java.

Я пробовал, но выдает ошибку и где я могу настроить реестр схемы.

aggr.selectExpr("CAST(order_id AS String) AS key", "to_avro(struct(*)) AS value").write().format("kafka").option("kafka.bootstrap.servers", "localhost:9092").option("topic", "aggr_topic").save();

или, пожалуйста, скопируйте scala код java.

val df = spark
  .readStream
  .format("kafka")
  .option("kafka.bootstrap.servers", kafkaURL)
  .option("subscribe", "t")
  .load()
  .select(
    from_avro($"key", "t-key", schemaRegistryURL).as("key"),
    from_avro($"value", "t-value", schemaRegistryURL).as("value"))

Заранее спасибо.

1 Ответ

1 голос
/ 08 февраля 2020

Этот код точно такой же в Java, за исключением val df

from_avro, кстати, существует только в среде блоков данных, и вы хотите writeStream и to_avro в любом случае.

Альтернативой является преобразование кадра данных в RDD с помощью foreachPartition, а затем создание нового KafkaProducer для отправки событий

Возможно, вас также заинтересует https://github.com/AbsaOSS/ABRiS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...