当我用ctas语法在athena中创建一个表时(下面的示例),表被注册为粘合,这样当我用(py)spark读取emr集群上的同一个表时,每个分区都被读取两次,但是当我用athena读取它时,就可以了。当我用spark创建一个表时 write.saveAsTable
语法,它被注册为正确地粘合,这个表被spark和athena正确地读取。
我在spark/athena/glue文档中没有找到任何关于这个的信息。经过一些尝试和错误,我发现有一个胶水表属性是由spark设置的,而不是由athena设置的: spark.sql.sources.provider='parquet'
. 当我在通过雅典娜创建的表上手动设置时,spark会正确地读取它。但这感觉像一个丑陋的解决办法,我想了解什么是在后台发生的。我没有找到任何关于这张table的资料。
athena创建表语法:
CREATE TABLE {database}.{table}
WITH (format = 'Parquet',
parquet_compression = 'SNAPPY',
external_location = '{s3path}')
AS SELECT
暂无答案!
目前还没有任何答案,快来回答吧!