Python awswrangler无法为 Dataframe 建立索引

cl25kdpy  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(113)

我正在使用awswrangler包将一个pandas Dataframe 传递给AWS Opensearch。这基本上可以工作,但是在列内容非常大的行上似乎失败了。
我基本上提取了数千个文档的内容(pdf,csv,txt等),我试图使这些内容可搜索。
我的主要问题是,我没有得到一个错误,我假设它是超时,但我没有太多的运气与文档。
有人有建议或替代方法吗?
密码:

import pandas as pd
import awswrangler as wr

#connect to opensearch
client = wr.opensearch.connect(
    host='back end url',
    username='username',
    password='password'
)

#read df from pickle
df= pd.read_pickle("outputs/final_pics/df.pkl")

#create index
wr.opensearch.create_index(
    client=client,
    index="indexname",
)

wr.opensearch.index_df(
    client,
    df=df,
    index="indexname",
    id_keys=["index_no"],
    #max_retries=3, #doesnt seem to help
    bulk_size=1000, #number of documents
    chunk_size=500
)

输出:

Indexing:   0% (0/8536)|                                 |Elapsed Time: 0:00:00
Indexing:  11% (1000/8536)|###                           |Elapsed Time: 0:00:30
Indexing:  23% (2000/8536)|#######                       |Elapsed Time: 0:01:16
Indexing:  35% (3000/8536)|##########                    |Elapsed Time: 0:01:31
Indexing:  46% (4000/8536)|##############                |Elapsed Time: 0:01:47
Indexing:  58% (5000/8536)|#################             |Elapsed Time: 0:02:06
{'success': 5000, 'errors': []}

编辑:我认为问题是上传的内容...如果我用一个简单的字符串替换文档内容,它就可以工作了。仍然在努力缩小范围。

m1m5dgzv

m1m5dgzv1#

经过一段时间的搜索,最终需要剥离/拆分一些内容并更改bulk_size变量。
将较大的文档按页面或X个单词进行拆分似乎可以达到这个目的,也可以使OpenSearch运行得更快。

相关问题