我们可以在avro模式支持的配置单元表中使用bucketing吗

sxpgvts3  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(363)

我正在尝试创建一个由avro模式支持的配置单元表。下面是ddl

CREATE TABLE avro_table
ROW FORMAT 
  SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'    
CLUSTERED BY (col_name) INTO N BUCKETS    
STORED AS 
  INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' 
  OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'  
TBLPROPERTIES ( 'avro.schema.url' = 'hdfs://sandbox.hortonworks.com:8020/avroschema/test_schema.avsc')

但它抛出了下面提到的错误
失败:parseexception行3:3在“org.apache.hadoop.hive.serde2.avro.avroserde”附近的“clustered”缺少eof
我不确定我们是否可以在avro支持的Hive中使用bucketing
配置单元版本--1.2
有谁能帮我或提供任何想法来实现这一点。。。。。

2ledvvac

2ledvvac1#

你的语法顺序错了,而且遗漏了一些东西。 ROW FORMAT 定义在 CLUSTERED BY ,和 CLUSTERED BY 需要一个列名,该列名可能需要定义为 CREATE TABLE 命令。
我想 NN BUCKETS 实际上是替换为实际的桶数,但如果不是,那就是另一个错误。
我已经格式化了您问题中的查询,以便我可以阅读它,并且与这里的语法相比,更容易发现解析器不喜欢的内容。

相关问题