概览
编辑概览编辑
Eland 是一个 Python 客户端和工具包,用于在 Elasticsearch 中处理数据帧和机器学习。完整文档可在 Read the Docs 上找到。源代码可在 GitHub 上找到。
兼容性编辑
- 支持 Python 3.8+ 和 Pandas 1.5
- 支持 Elasticsearch 7.11+ 集群,建议使用 7.14 或更高版本以确保所有功能正常运行。请确保您的 Eland 主版本与 Elasticsearch 集群的主版本匹配。
在您的 setup.py
或 requirements.txt
中设置需求的推荐方法是:
# Elasticsearch 8.x eland>=8,<9
# Elasticsearch 7.x eland>=7,<8
入门编辑
创建一个连接到运行在 https://127.0.0.1:9200
上的 Elasticsearch 集群的 DataFrame
对象
>>> import eland as ed >>> df = ed.DataFrame( ... es_client="https://127.0.0.1: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]
Elastic Cloud编辑
您也可以将 Eland 连接到 Elastic Cloud 中的 Elasticsearch 实例
>>> import eland as ed >>> from elasticsearch import Elasticsearch # First instantiate an 'Elasticsearch' instance connected to Elastic Cloud >>> es = Elasticsearch(cloud_id="...", api_key="...") # then wrap the client in an Eland DataFrame: >>> df = ed.DataFrame(es, es_index_pattern="flights") >>> df.head(5) 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 [5 rows x 27 columns]
Eland 可用于执行复杂的查询和聚合
>>> 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