【发布时间】:2021-03-03 11:44:07
【问题描述】:
在我的 DataFrame 中,我有以下格式的时间戳(存储为字符串):
| timestamp_format_A | timestamp_format_B |
|---|---|
| 2021-03-03 11.25.19 | 2021-03-03 11:25:19 |
当我通过
将此数据推送到 Elasticsearch 时,这两个字段都被解释并存储为“文本”myDataFrame.saveToEs("my-index/_doc")
我使用 Elasticsearch 作为单页 Web 应用程序的后端,并且需要为我们的最终用户提供以日期形式查询这些字段的功能。当字段存储为“文本”时,用户无法发送查询字符串,如
timestamp_format_A:>2018
到目前为止,我已经尝试将日期映射应用于我的索引之前我将数据推送到 Elasticsearch,如 docs 中所述,如下所示
PUT my-index
{
"mappings": {
"properties": {
"timestamp_format_A": {
"type": "date",
"format": "yyyy-MM-dd HH.mm.ss"
},
"timestamp_format_B": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
}
}
}
}
但是当我这样做时,我在推送数据时收到以下错误消息:
illegal_argument_exception: mapper [timestamp_format_A] cannot be changed from type [date] to [text]
这有点令人困惑,因为我本以为它会试图做相反的事情。
以下帖子推荐上述解决方案:
不确定我是否在这里做错了...如何将时间戳正确解析为日期类型?
【问题讨论】:
标签: scala apache-spark elasticsearch