我读了其他问题,我对这个选项感到困惑。我想读一本书 Athena view
在emr spark中,通过在google/stackoverflow上搜索,我意识到这些视图以某种方式存储在s3中,因此我首先尝试通过
Describe mydb.Myview
它提供模式,但不提供外部位置。我假设我不能从 S3
到目前为止,我在阅读《星火》中雅典娜的观点时考虑了什么
我考虑过以下选择
使用with STANTATION和external format as从这个雅典娜视图中创建一个新表
PARQUET CREATE TABLE Temporary_tbl_from_view WITH ( format = 'PARQUET', external_location = 's3://my-bucket/views_to_parquet/', ) AS ( SELECT * FROM "mydb"."myview"; );
另一种选择是基于这个答案,这表明
当您启动emr集群(v5.8.0及更高版本)时,您可以指示它连接到您的glue数据目录。这是“创建群集”对话框中的复选框。当您选中此选项时,您的sparksqlcontext将连接到glue数据目录,并且您将能够看到athena中的表。
但我不知道我该怎么问这个问题 view
(非表格)如果雅典娜表格/视图可通过 Glue catalogue
在spark上下文中,像这样的简单语句有效吗?
sqlContext.sql("SELECT * from mydbmyview")
问题是,在spark中读取此视图更有效的方法是什么?使用with语句(外部位置)重新创建表是否意味着将此内容存储在 Glue catalog
或者 S3
两次?如果是,我如何通过s3或胶水目录直接阅读?
1条答案
按热度按时间l2osamch1#
为了与其他人共享我遵循的解决方案,我创建了启用了以下选项的集群
后来,我看到
database
来自aws glue的名称,并且能够在中看到所需的视图tablename
如下所示