2017-06-12 39 views
0

我想使用Spark将数据保存到Elasticsearch中。 我使用这个连接器:https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html#spark-installation弹性搜索 - 斯卡拉案例类@timestamp

我可以使用saveToEsWithMeta方法RDD与案例类保存数据。但是,当我想设置字段名为@timestamp我有一个问题。我在属性类中添加了一个属性名称@timestamp,但该属性在Elasticsearch中以名称'$ attimestamp'保存,而不是'@timestamp'。

我发现了一个使用Map而不是案例类的解决方法,但是您知道使用案例类的解决方案吗?

非常感谢, 伯努瓦

回答

0

也许从你链接到文件试试这个:

对于情况的ID(或其他元数据字段,如TTL或 时间戳)的文件需求要指定,可以通过 设置适当的映射es.mapping.id来实现。在前面的示例 之后,要指示Elasticsearch使用字段ID作为 文档ID,请更新RDD配置(也可以通过 在SparkConf上设置属性,但由于它的全局效应,它不鼓励它使用 ):

EsSpark.saveToEs(RDD, “火花/文档”,地图( “es.mapping.id” - > “ID”))

+0

我尝试,但它不工作。我相信@timestamp是数据的一部分,而不是元数据的一部分。 “es.mapping.timestamp”引用_timestamp元数据。我错了? – B3n