【问题标题】:Elastic search - scala case class @timestamp弹性搜索 - scala 案例类 @timestamp
【发布时间】:2017-06-13 00:33:59
【问题描述】:

我想使用 Spark 将数据保存到 Elasticsearch。 我使用这个连接器:https://www.elastic.co/guide/en/elasticsearch/hadoop/master/spark.html#spark-installation

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

我找到了使用 Map 而不是案例类的解决方法,但是您知道使用案例类的解决方案吗?

非常感谢, 贝努瓦

【问题讨论】:

    标签: scala apache-spark elasticsearch


    【解决方案1】:

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

    对于 id(或其他元数据字段,如 ttl 或 需要指定文档的时间戳),可以通过 设置适当的映射,即 es.mapping.id。继 上一个示例,指示 Elasticsearch 使用字段 id 作为 文档 id,更新 RDD 配置(也可以 在 SparkConf 上设置属性,但由于其全局影响 不鼓励):

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

    【讨论】:

    • 我试过了,但它不起作用。我相信@timestamp 是数据的一部分,而不是元数据的一部分。 “es.mapping.timestamp”指的是 _timestamp 元数据。我错了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多