与从 Athena 查询相比,Pyathena 超级慢
Pyathena is super slow compared to querying from Athena
我 运行 来自 AWS Athena 控制台 的查询,需要 10 秒。
使用 PyAthena 来自 Sagemaker 的相同查询 运行 需要 155 秒。
是 PyAthena 减慢了它的速度,还是从 Athena 到 sagemaker 的数据传输如此耗时?
我可以做些什么来加快速度?
想出一种提高查询的方法:
在我尝试之前:
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 而不是 connection 更快
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
我 运行 来自 AWS Athena 控制台 的查询,需要 10 秒。 使用 PyAthena 来自 Sagemaker 的相同查询 运行 需要 155 秒。 是 PyAthena 减慢了它的速度,还是从 Athena 到 sagemaker 的数据传输如此耗时?
我可以做些什么来加快速度?
想出一种提高查询的方法:
在我尝试之前:
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 而不是 connection 更快
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