我们可以在avro架构支持的hive表中使用bucketing

时间:2016-07-13 13:28:35

标签: hive avro bigdata

我正在尝试创建一个由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''中缺少EOF

我不确定我们是否可以在AVRO支持的Hive中使用或不支持

hive版本 - 1.2

任何人都可以帮助我或提供任何想法来实现这一目标.....

1 个答案:

答案 0 :(得分:0)

您的语法顺序错误,缺少内容。 ROW FORMAT是在CLUSTERED BY之后定义的,CLUSTERED BY需要一个列名,大概需要将其定义为CREATE TABLE命令的一部分。

我认为N中的N BUCKETS实际上已替换为您实际的存储区数量,但如果没有,那就是另一个错误。

我已经在您的问题中格式化了查询,以便我可以阅读它,d comparing to syntax here更容易发现解析器不喜欢的内容。