当前位置: 首页 > 面试题库 >

将Elasticsearch结果导出到CSV文件

袁奇逸
2023-03-14
问题内容

我试图将使用以下查询找到的结果导出到我的桌面上的CSV中。

这是我第一次使用Elasticsearch和cURL,因此我对如何执行此操作感到困惑。

from elasticsearch import Elasticsearch

es = Elasticsearch(["9200"])

# Replace the following Query with your own Elastic Search Query
res = es.search(index="search", body=
                {
                    "_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
                    "query": {
                        "bool": {
                            "should": [
                                {"wildcard": {"CN": "TEST1"}}

                            ]
                        }
                    }
}, size=10)

for doc in res['hits']['hits']:
    print(doc)

现在,当我运行此查询时,它将返回戴夫的姓名,姓氏,地址和性别,并且我想在运行查询时将结果放入桌面上的csv中。

我一直在阅读有关如何执行此链接的操作,但是我不确定如何使我的查询执行此操作-(https://docs.python.org/3/library/csv.html)

有人可以帮忙,向我展示如何在导出csv时转换我的查询!

谢谢

我得到的输出是-

{'_index': 'search', '_type': 'trades', '_id': '179299804977823744', '_score': 1.0, '_source': {'DTDT': '20170928', 'SPLE': '1001', 'RPLE': '1001', 'TRDT': '2017-09-28 17:01:19'}}

问题答案:

您可以使用csv模块写入数据。

从您给出的输出中,我假设您要将数据从中写入_sourcecsv文件。

代码

from elasticsearch import Elasticsearch
import csv

es = Elasticsearch(["9200"])

# Replace the following Query with your own Elastic Search Query
res = es.search(index="search", body=
                {
                    "_source": ["DTDT", "TRDT", "SPLE", "RPLE"],
                    "query": {
                        "bool": {
                            "should": [
                                {"wildcard": {"CN": "TEST1"}}

                            ]
                        }
                    }
}, size=10)



with open('mycsvfile.csv', 'w') as f:  # Just use 'w' mode in 3.x
    header_present  = False
    for doc in res['hits']['hits']:
        my_dict = doc['_source'] 
        if not header_present:
            w = csv.DictWriter(f, my_dict.keys())
            w.writeheader()
            header_present = True


        w.writerow(my_dict)


 类似资料:
  • 问题内容: 我正在做“elasticsearch入门”教程。不幸的是,本教程没有介绍将数据库导入Elasticsearch的第一步。 我用谷歌搜索找到了解决方案,但不幸的是它无法正常工作。这是我要实现的目标和拥有的目标: 我有一个要导入的数据文件(简化了) 我想使用导入。经过互联网研究后,我得到以下配置: 我在指定文档类型时遇到了麻烦,因此一旦导入数据,便导航到http:// localhost:

  • 问题内容: 如何使用Logstash将数据从Elasticsearch导出到CSV?我只需要包括特定的列。 问题答案: 安装2个插件:elasticsearch输入插件和csv输出插件。然后创建一个配置文件。这是这种情况的一个很好的例子。 您现在就可以开始了,只需运行: 并检查中指定的文件。

  • 哪种方法是以CSV格式导出JPA查询结果的最佳方法?我试过opencsv,但它需要一个java.sql.ResultSet对象,我不明白如何创建它。我尝试了以下代码 但我收到异常java.lang.ClassCastException:java.util.Vector不能强制转换为java.sql.ResultSet

  • 问题内容: 我有一个在Amazon RDS中运行的mysql数据库,我想知道如何将整个表导出为csv格式。我目前在Windows上使用mysql服务器查询Amazon数据库,但是当我尝试运行导出时,我得到一个错误,可能是因为没有用于Amazon RDS的专用文件服务器。有什么解决办法吗? 问题答案: 大概您正在尝试通过查询从Amazon RDS数据库导出,这会引起这个确实常见的问题,请参阅例如将数

  • 问题内容: import csv 我得到奇怪的输出!此代码有什么问题? 问题答案: 用途:

  • 我想将我的SPARQL查询的结果从Blazegraph导出到一个文件中。但是,它只导出结果的第一页。当我尝试显示所有结果时,我的浏览器崩溃。 我该怎么解决这个? 我正在本地集群上运行BlazeGraph2.1.2。