【问题标题】:create bucket table in AWS Athena在 AWS Athena 中创建存储桶表
【发布时间】:2021-02-24 21:07:19
【问题描述】:

我尝试以下查询来创建存储桶表,但失败了。但是,如果我删除 子句CLUSTERED BY,查询可以成功。有什么建议吗?谢谢。

错误信息:no viable alternative at input create external

CREATE EXTERNAL TABLE nation5(
  n_nationkey bigint, 
  n_name string, 
  n_rgionkey int, 
  n_comment string)
CLUSTERED BY 
  n_regionkey INTO 256 BUCKETS
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
WITH SERDEPROPERTIES ( 
  'path'='s3://test/testbucket/nation5/') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://test/testbucket/nation5/'

【问题讨论】:

  • 是否通过分桶表获得了性能提升?

标签: amazon-web-services presto amazon-athena


【解决方案1】:

CLUSTERED BY 列需要放在括号中,如下工作:

CREATE EXTERNAL TABLE test.nation5(
  n_nationkey bigint, 
  n_name string, 
  n_regionkey int, 
  n_comment string)
CLUSTERED BY 
  (n_regionkey) INTO 256 BUCKETS
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
WITH SERDEPROPERTIES ( 
  'path'='s3://test/testbucket/nation5/') 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION
  's3://test/testbucket/nation5/'

(您在列定义中的n_rgionkey 也有拼写错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-11
    • 2020-07-16
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2022-09-27
    • 2020-10-31
    相关资源
    最近更新 更多