Python: чтение файлов Parquet, сохраненных на s3, с помощью petastorm генерирует предупреждения о подключении
У меня есть модель Tensorflow, которую я хотел бы скормить паркетными файлами, хранящимися на s3. я использую petastorm
запросить эти файлы из s3, и результат запроса сохраняется как набор данных Tensorflow благодаря petastorm.tf_utils.make_petastorm_dataset
,
Вот код, который я использовал (главным образом, вдохновленный этим потоком Tensorflow Dataset API: конвейер ввода с файлами паркета):
import s3fs
from pyarrow.filesystem import S3FSWrapper
from petastorm.reader import Reader
from petastorm.tf_utils import make_petastorm_dataset
dataset_url = "analytics.xxx.xxx" #s3 bucket name
fs = s3fs.S3FileSystem()
wrapped_fs = S3FSWrapper(fs)
with Reader(pyarrow_filesystem=wrapped_fs, dataset_path=dataset_url) as reader:
dataset = make_petastorm_dataset(reader)
Это работает довольно хорошо, за исключением того, что генерирует более 20 строк предупреждений о подключении:
W0514 18:56:42.779965 140231344908032 connectionpool.py:274] Connection pool is full, discarding connection: s3.eu-west-1.amazonaws.com
W0514 18:56:42.782773 140231311337216 connectionpool.py:274] Connection pool is full, discarding connection: s3.eu-west-1.amazonaws.com
W0514 18:56:42.854569 140232468973312 connectionpool.py:274] Connection pool is full, discarding connection: s3.eu-west-1.amazonaws.com
W0514 18:56:42.868761 140231328122624 connectionpool.py:274] Connection pool is full, discarding connection: s3.eu-west-1.amazonaws.com
W0514 18:56:42.885518 140230816429824 connectionpool.py:274] Connection pool is full, discarding connection: s3.eu-west-1.amazonaws.com
...
В соответствии с этим потоком urllib3 connectionpool - пул соединений переполнен, отбрасывает соединение, оно, безусловно, связано с urllib3
, но я не могу найти способ избавиться от этих предупреждений.
Кто-нибудь сталкивался с этой проблемой?
0 ответов
Получил ответ на Github: https://github.com/uber/petastorm/issues/376. Используйте настройку пула соединений дляboto3
и увеличить max_pool_connections
:
fs = s3fs.S3FileSystem(config_kwargs = {'max_pool_connections': 50})