我正在使用Spark结构化流传输来处理来自Kafka队列的大量数据并进行一些繁重的ML计算,但是我需要将结果写入Elasticsearch。
我尝试使用ForeachWriter
,但无法在其中获取SparkContext
,另一个选择可能是在HTTP Post
内执行ForeachWriter
。
现在,我正在考虑编写自己的ElasticsearchSink。
是否有任何文档可以为Spark结构化流创建接收器?
最佳答案
您可以看看ForeachSink。它显示了如何实现接收器并将DataFrame转换为RDD(这非常棘手,并且注释很大)。但是,请注意,Sink API仍然是私有(private)且不成熟的,将来可能会更改。
关于scala - 如何为Spark结构化流编写ElasticsearchSink,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42427004/