繁体   English   中英

通过pyathena运行aws athena查询

[英]running aws athena query via pyathena

此查询在Athena的前端工作正常:

SELECT * FROM analysisdata."iris" limit 10;

我正在使用这个Python代码通过Python / pyathena运行上述查询

from pyathena import connect

cursor = connect(aws_access_key_id='AKI.DELETED.2Q',
                 aws_secret_access_key='D.DELETED.Al',
                 s3_staging_dir='s3://Bla887342ac-a3ce-4600-94d0-9092f4a6bd20/Iris',
                 region_name='eu-west-1').cursor()

cursor.execute("""SELECT * FROM analysisdata.""iris"" limit 10;""")

print(cursor.description)
print(cursor.fetchall())

不幸的是我得到:

pyathena.error.DatabaseError: An error occurred (InvalidRequestException) when calling the StartQueryExecution operation: line 1:27: mismatched input '.' expecting {<EOF>, ',', 'WHERE', 'GROUP', 'ORDER', 'HAVING', 'LIMIT', 'APPROXIMATE', 'JOIN', 'CROSS', 'INNER', 'LEFT', 'RIGHT', 'FULL', 'NATURAL', 'UNION', 'EXCEPT', 'INTERSECT'}

我认为是我的介绍:

""" and ""

有任何想法吗?

PS:

我试过了:

cursor.execute("SELECT * FROM analysisdata.""iris"" limit 10;")

得到:

pyathena.error.OperationalError: com.facebook.presto.hive.DataCatalogException: Namespace analysisdata not found. Please check your query.

为什么facebook出现在这?

我也尝试过:

cursor.execute("SELECT * FROM analysisdata.iris limit 10;")

同样的错误信息......

如图所示,您在eu-west-1中的目录不包含analysisdata db。

您必须在Athena Console中指定您在其中创建数据库/表的区域,而不是指定的S3存储区域。

要解决此问题,请登录控制台,并验证哪个区域包含数据库/表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM