我正在使用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': []}
编辑:我认为问题是上传的内容...如果我用一个简单的字符串替换文档内容,它就可以工作了。仍然在努力缩小范围。
1条答案
按热度按时间m1m5dgzv1#
经过一段时间的搜索,最终需要剥离/拆分一些内容并更改bulk_size变量。
将较大的文档按页面或X个单词进行拆分似乎可以达到这个目的,也可以使OpenSearch运行得更快。