Реализация приемника Cassandra в потоковой передаче Spark с использованием ForeachWriter - PullRequest
0 голосов
/ 23 февраля 2019

Очевидно, что нет встроенной поддержки приемника Cassandra в потоковой передаче Spark.Я нашел этот пример в Интернете, который реализует собственный приемник Cassandra для структурированной потоковой передачи Spark на основе ForEachWriter:

https://dzone.com/articles/cassandra-sink-for-spark-structured-streaming

Я понимаю, что нам нужно создать реализацию ForeachWriter, которая позаботится об открытииподключение к стоку (Cassandra), запись данных и закрытие соединения.Так что классы CassandraSinkForeach и CassandraDriver имеют смысл.

Однако у меня нет необходимости делать сериализуемый SparkSessionBuilder и даже необходимость инициализировать экземпляр SparkSession внутри класса CassandraDriver.Похоже, единственная причина для этого - инициализация CassandraConnector из sparkConf.

Согласно документам CassandraConnector, объект CassandraConnector может быть инициализирован из CassandraConnectorConfig, переданного в: http://datastax.github.io/spark-cassandra-connector/ApiDocs/2.4.0/spark-cassandra-connector/#com.datastax.spark.connector.cql.CassandraConnector

Может кто-нибудь объяснить, есть ли необходимость инициализировать SparkSession у рабочих?Это общая схема, и если да, то почему это требование?

1 Ответ

0 голосов
/ 25 февраля 2019

Если вы можете перейти на Spark 2.4, вы можете использовать ForEachBatch, где вы можете применять средства записи пакетов поверх потоковых фреймов данных.

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