Overviewedit

Eland is a Python client and toolkit for DataFrames and machine learning in Elasticsearch. Full documentation is available on Read the Docs. Source code is available on GitHub.

Compatibilityedit

The library is compatible with all Elasticsearch versions since 7.6.x but you have to use a matching major version:

The recommended way to set your requirements in your setup.py or requirements.txt is::

# Elasticsearch 7.x
eland>=7,<8

Because Eland uses some experimental APIs for machine learning it is also recommended to install the same major and minor for elasticsearch-py as your cluster. For example if your cluster is v7.8.1 you would install like so::

$ python -m pip install 'eland>=7,<8' 'elasticsearch>=7.8,<7.9'

Getting Startededit

Create a DataFrame object connected to an Elasticsearch cluster running on localhost:9200:

>>> import eland as ed
>>> df = ed.DataFrame(
...    es_client="localhost:9200",
...    es_index_pattern="flights",
... )
>>> df
       AvgTicketPrice  Cancelled  ... dayOfWeek           timestamp
0          841.265642      False  ...         0 2018-01-01 00:00:00
1          882.982662      False  ...         0 2018-01-01 18:27:00
2          190.636904      False  ...         0 2018-01-01 17:11:14
3          181.694216       True  ...         0 2018-01-01 10:33:28
4          730.041778      False  ...         0 2018-01-01 05:13:00
...               ...        ...  ...       ...                 ...
13054     1080.446279      False  ...         6 2018-02-11 20:42:25
13055      646.612941      False  ...         6 2018-02-11 01:41:57
13056      997.751876      False  ...         6 2018-02-11 04:09:27
13057     1102.814465      False  ...         6 2018-02-11 08:28:21
13058      858.144337      False  ...         6 2018-02-11 14:54:34

[13059 rows x 27 columns]

Eland can also be used for complex queries and aggregations:

>>> df[df.Carrier != "Kibana Airlines"].groupby("Carrier").mean(numeric_only=False)
                  AvgTicketPrice  Cancelled                     timestamp
Carrier
ES-Air                630.235816   0.129814 2018-01-21 20:45:00.200000000
JetBeats              627.457373   0.134698 2018-01-21 14:43:18.112400635
Logstash Airways      624.581974   0.125188 2018-01-21 16:14:50.711798340