弹性搜索 - scala案例类@timestamp

时间:2017-06-12 14:36:19

标签: scala apache-spark elasticsearch

我想使用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

1 个答案:

答案 0 :(得分:0)

也许从您链接到的文档中尝试这个:

  

对于id(或其他元数据字段,如ttl或   需要指定文档的时间戳),人们可以这样做   设置适当的映射即es.mapping.id。以下   前面的示例,指示Elasticsearch使用字段id作为   文档ID,更新RDD配置(也可以   因为它的全局效果,它在SparkConf上设置了属性   不鼓励):

     

EsSpark.saveToEs(rdd," spark / docs",Map(" es.mapping.id" - >" id"))