如何使用Spark结构化流在Elasticsearch Sink中设置动态文档ID

时间:2019-09-24 09:40:00

标签: spark-structured-streaming elasticsearch-hadoop

在elasticsearch写接收器中,如何从数据集字段添加具有动态值的doc id。就我而言,我需要根据格式化数据集中的特定字段设置文档ID。遇到“ es.mapping.id”,但是我如何从数据集中获取值?

1 个答案:

答案 0 :(得分:0)

发现只需指定字段名称作为“ es.mapping.id”的值即可实现这一目标

StreamingQuery query = finalData.writeStream()
                .outputMode(OutputMode.Append())
                .format("org.elasticsearch.spark.sql")
                .option("es.mapping.id", "input_key")        
                .option("checkpointLocation","/tmp/spark-checkpoint")
                .start("spark_index/doc");