我想使用Spark将数据保存到Elasticsearch中。 我使用这个连接器:https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html#spark-installation
我可以使用案例类在RDD上使用saveToEsWithMeta方法保存数据。但是当我想设置名为@timestamp的字段时,我遇到了问题。我在我的case类中添加了一个属性名@timestamp
,但是这个属性在Elasticsearch中保存了名为'$ attimestamp'而不是'@timestamp'。
我找到了使用Map而不是case类的解决方法,但你知道使用case类的解决方案吗?
非常感谢, Benoît
答案 0 :(得分:0)
也许从您链接到的文档中尝试这个:
对于id(或其他元数据字段,如ttl或 需要指定文档的时间戳),人们可以这样做 设置适当的映射即es.mapping.id。以下 前面的示例,指示Elasticsearch使用字段id作为 文档ID,更新RDD配置(也可以 因为它的全局效果,它在SparkConf上设置了属性 不鼓励):
EsSpark.saveToEs(rdd," spark / docs",Map(" es.mapping.id" - >" id"))