Как установить более высокий тайм-аут в классе

Это работает, если данные не очень большие. (например, до 5 МБ)

import eland as ed
df = ed.DataFrame('localhost:9200', 'kibana_sample_data_flights')
df.to_csv('abc.csv')

Но получаю ошибку тайм-аута через 10 секунд, если данные большие.

ConnectionTimeout: ConnectionTimeout caused by - ReadTimeoutError(HTTPSConnectionPool(host='xxx', port=xxx): Read timed out. (read timeout=10))

Есть ли способ изменить тайм-аут по умолчанию в этом классе?

stackoverflow.com/questions/28287261/…
yurib 21.12.2020 05:56
0
1
245
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Библиотека eland, на которой основана elasticsearch, позволяет установить параметр Timeout самостоятельно. А на странице PyPI для eland подробно рассказывается о том, как использовать библиотеки eland и elasticsearch вместе для выполнения ваших запросов.

Вы можете сделать запрос, используя elasticsearch и получить объект DataFrame, который вы затем to_csv без необходимости сильно менять код.

Надеюсь, мой ответ был полезен!

Это был правильный объект подключения, который мне нужно включить тайм-аут.

import eland as ed
from elasticsearch import Elasticsearch

es = Elasticsearch([{"host": "localhost", "port": 9200, "timeout": 120}])
df = ed.DataFrame(es, es_index_pattern = "kibana_sample_data_flights")

Другие вопросы по теме