Получить столбцы в массиве изasticsearch - PullRequest
0 голосов
/ 06 сентября 2018

у меня есть:

1    2    3    4    5
1    55   4    8    7
8    6    80   40   1

У меня есть pandas dataframe, сохраненные в elasticsearch index, каждая строка является документом.
Теперь я хочу получить все столбцы, которые есть в списке [1,5]

т.е. выход должен быть:

1    5
1    7
8    1

Когда я делаю:

from elasticsearch import Elasticsearch
from pandas.io.json import json_normalize
res = es.search(index="index_name", body={ "query": {"match_all": {}}})
df = json_normalize(res['hits']['hits'])

Я получаю dataframe, но я не хочу загружать его полностью, просто хочу получить определенные столбцы, как мне это сделать?

Возможно, это не поможет мне полностью, но будет сделано только через фильтр ES filter-term-array

ОБНОВЛЕНО

Документы на ES похожи на:

{
    "_index": "index_name",
    "_type": "dataframe",
    "_id": "0",
    "_score": 1,
    "_source": {
      "1": 1,
      "2": 55,
      "3": 4,
      "4": 8,
      "5": 7,
      "index": 0
}

ОБНОВЛЕНИЕ 2

Очевидно, я могу сделать:

df[[1,5]] or
df[:,[1,5]]

или что-то еще с pandas
Но для этого я должен сначала загрузить весь свой dataframe, что если dataframe слишком велик? Я не хочу заполнять всю мою память одним dataframe, так как у меня разные задачи, я просто хочу загрузить необходимые столбцы из эластичного поиска, это больше вопрос elasticsearch query, чем pandas.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...