Как распараллелить OAIIterator Sickle (или аналогичный метод)? - PullRequest
2 голосов
/ 03 июля 2019

В настоящее время я использую модуль Sickle Python для итерации по OAI-репозиторию с ~ 4 млн. Записей.Я просматривал документацию Sickle, чтобы увидеть, есть ли очевидный способ разделения записей, когда-то возвращенных sickle.ListRecords, таким образом, чтобы иметь смысл выполнять задачу параллелизма данных.Проще говоря, это то, что я хотел бы сделать:

from sickle import Sickle

sickle = Sickle('https://url/to/oai/repository')
recs = sickle.ListRecords(metadataPrefix='oai_dc')

'''separate recs into 1/12th sections for 16 core machine named rec_1 ... rec_12'''

'''core i runs the following process:'''
abstracts = []
for record in rec_i:
    abstracts.append(record['abstract'])

Я подозреваю, что нет способа сделать это изначально в самом Sickle, но если я могу отделить возвращение серпа.ListRecords вразличные разделы, это было бы очень полезно.Если нет, то если бы кто-нибудь мог порекомендовать аналогичный подход в python, который бы учитывал параллелизм, я был бы очень признателен.

...