Как изменить формат поля с эпохи на дату - PullRequest
0 голосов
/ 18 июня 2019

У меня есть поле в файле данных в формате эпохи. Я хочу изменить данные в этом поле в формате даты.Есть ли простой способ?

https://drive.google.com/open?id=1JRZj8myVu1UHJ3jxZzzb8LSKKMicY0Qi

1 Ответ

0 голосов
/ 18 июня 2019

Вы можете использовать функцию обработки date процессора , которая будет считывать поля даты, содержащие значение эпохи, и преобразовывать их в обычный формат ISO8601:

Сначала вы можете создать конвейер следующим образом:

PUT _ingest/pipeline/epoch-to-format
{
  "processors": [
    {
      "date": {
        "field": "arrival_timestamp",
        "target_field": "arrival_timestamp",
        "formats": [
          "UNIX_MS"
        ]
      }
    },
    {
      "date": {
        "field": "event_timestamp",
        "target_field": "event_timestamp",
        "formats": [
          "UNIX_MS"
        ]
      }
    }
  ]
}

Затем, когда вы принимаете документ, вы можете указать используемый конвейер:

PUT test/doc/1?pipeline=epoch-to-format
{
   "event_timestamp": 1556843795341,
   "arrival_timestamp": 1556843798527,
   ...
}

И в итоге этот документ будет проиндексирован в ES:

GET test/doc/1
{
   "arrival_timestamp" : "2019-05-03T00:36:38.527Z",
   "event_timestamp" : "2019-05-03T00:36:35.341Z",
   ...
}

При входе в Python вы можете указать конвейер следующим образом:

es.index(index='indexname', doc_type='typename', body="string", pipeline='epoch-to-format')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...