Структурированная потоковая передача Spark ForeachWriter не может получить sparkContext

Я читаю данные JSON из очереди Kafka, используя структурированную потоковую передачу Spark, но мне нужно записать данные JSON в Elasticsearch.

Однако я не могу получить sparkContext внутри ForeachWriter для преобразования JSON в RDD. Выбрасывает NPE.

Как я могу получить SparkContext в Writer для преобразования JSON в RDD?


person Adetiloye Philip Kehinde    schedule 22.02.2017    source источник


Ответы (1)


Вы не можете. Методы в ForeachWriter запускаются в исполнителях. Вы можете либо написать приемник Elasticsearch самостоятельно, либо вызвать необработанные API-интерфейсы Elasticsearch для записи данных.

person zsxwing    schedule 22.02.2017
comment
С помощью elasticsearch-hadoop любой RDD можно сохранить в Elasticsearch, если его содержимое может быть переведено в документы elastic.co/guide/en/elasticsearch/hadoop/current/spark.html - person OneCricketeer; 22.02.2017
comment
Вы не можете получить RDD, если не напишете приемник. - person zsxwing; 23.02.2017
comment
OP должен иметь RDD из Kafka DStream. - person OneCricketeer; 23.02.2017
comment
@zsxwing Я создал искровой сеанс в ForeachWriter, и он работает локально, но не работает в кластере. Правильно ли иметь еще один сеанс в ForeachWriter? - person Jaison; 16.06.2020