Je suis à l'aide de champs de paramètre sur le python-elasticsearch api pour récupérer des données à partir d'elasticsearch tentative d'analyser la @timestamp au format iso pour une utilisation dans une pandas dataframe.
fields = \
[{
"field": "@timestamp",
"format": "strict_date_optional_time"
}]
Par défaut elasticsearch retourner les résultats sur le tableau-format de liste comme vu dans la doc:
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-fields.html
The fields response always returns an array of values for each field, even when there is a single value in the _source.
À cause de cette résultant dataframe contient un objet de la liste de série qui ne peut pas être analysée pour un datetime série par les méthodes classiques.
Name: fields.@timestamp, Length: 18707, dtype: object
0 [2021-11-04T01:30:00.263Z]
1 [2021-11-04T01:30:00.385Z]
2 [2021-11-04T01:30:00.406Z]
3 [2021-11-04T01:30:00.996Z]
4 [2021-11-04T01:30:01.001Z]
...
8368 [2021-11-04T02:00:00.846Z]
8369 [2021-11-04T02:00:00.894Z]
8370 [2021-11-04T02:00:00.895Z]
8371 [2021-11-04T02:00:00.984Z]
8372 [2021-11-04T02:00:00.988Z]
Lorsque vous essayez d'analyser la série datetime série:
pd.to_datetime(["fields.@timestamp"])
Le résultat dans:
TypeError: <class 'list'> is not convertible to datetime
Mon cas d'utilisation nécessite beaucoup de datetime les formats et les champs de paramètre convient très bien interrogation de plusieurs formats, mais le cotées objet datetime chaîne de difficile les choses.