Python: чтение файлов Parquet, сохраненных на s3, с помощью petastorm генерирует предупреждения о подключении - PullRequest
0 голосов
/ 14 мая 2019

У меня есть модель 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, но я не могу найти способ избавиться от этих предупреждений.

Кто-нибудь сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 11 июля 2019

Получил ответ на Github: https://github.com/uber/petastorm/issues/376. Используйте настройку пула соединений для boto3 и увеличьте max_pool_connections:

fs = s3fs.S3FileSystem(config_kwargs = {'max_pool_connections': 50})

...