Pyathena работает очень медленно по сравнению с запросами из Athena

#python #amazon-web-services #amazon-athena #amazon-sagemaker #pyathena

#python #amazon-веб-сервисы #amazon-athena #amazon-sagemaker #pyathena

Вопрос:

Я запускаю запрос из консоли AWS Athena и занимаю 10 секунд. Тот же запрос, выполняемый из Sagemaker с использованием PyAthena, занимает 155 секунд. PyAthena замедляет его или передача данных из Athena в sagemaker занимает так много времени?

Что я могу сделать, чтобы ускорить это?

Ответ №1:

Просто найдите способ увеличить запросы:

Прежде чем я пытался:

 import pandas as pd
from pyathena import connect

conn = connect(s3_staging_dir=STAGIN_DIR,
             region_name=REGION)
pd.read_sql(QUERY, conn)
# takes 160s
  

Выяснил, что использование PandasCursor вместо соединения намного быстрее

 import pandas as pd
pyathena import connect
from pyathena.pandas.cursor import PandasCursor

cursor = connect(s3_staging_dir=STAGIN_DIR,
                 region_name=REGION,
                 cursor_class=PandasCursor).cursor()
df = cursor.execute(QUERY).as_pandas()
# takes 12s
  

Ссылка: https://github.com/laughingman7743/PyAthena/issues/46

Комментарии:

1. Похоже, что комментарии по времени меняются местами. Верхняя часть должна занимать больше времени, т.Е. 160 секунд, а нижняя — 12 секунд.

2. это pyathena.pandas.cursor и нет pyathena.pandas_underscore_cursor . Я понимаю, что это просто небольшая опечатка, но она может сэкономить некоторые потенциальные поиски на этом пути 🙂 @room13 @trudolf

3. вы правы @RameshK к сожалению, я не могу это исправить. в нем говорится, что изменения должны содержать не менее 6 символов ^^