我们可以在由 avro 模式支持的配置单元 table 中使用分桶吗
Can we use bucketing in hive table backed by avro schema
我正在尝试创建一个由 avro 模式支持的配置单元 table。下面是那个
的 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 中使用分桶
hive版本--1.2
任何人都可以帮助我或提供任何想法来实现这一点......
您的语法顺序错误,并且缺少内容。 ROW FORMAT
是在 CLUSTERED BY
之后定义的,CLUSTERED BY
需要一个列名,它可能需要定义为 CREATE TABLE
命令的一部分。
我假设 N BUCKETS
中的 N
确实被替换为您的实际桶数,但如果不是,那就是另一个错误。
我已经格式化了你问题中的查询以便我可以阅读它,d comparing to syntax here更容易发现解析器不喜欢的内容。
我正在尝试创建一个由 avro 模式支持的配置单元 table。下面是那个
的 DDLCREATE 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 中使用分桶
hive版本--1.2
任何人都可以帮助我或提供任何想法来实现这一点......
您的语法顺序错误,并且缺少内容。 ROW FORMAT
是在 CLUSTERED BY
之后定义的,CLUSTERED BY
需要一个列名,它可能需要定义为 CREATE TABLE
命令的一部分。
我假设 N BUCKETS
中的 N
确实被替换为您的实际桶数,但如果不是,那就是另一个错误。
我已经格式化了你问题中的查询以便我可以阅读它,d comparing to syntax here更容易发现解析器不喜欢的内容。