我是新来的,所以,请多问我一点,以防我没有给出足够的问题
这些是Hive里的
这是avro表
CREATE EXTERNAL TABLE cm
PARTITIONED BY (
`year` STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED as INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION 's3://blabla/cm'
TBLPROPERTIES (
'avro.schema.url'='s3://blabla/cm')
我正试着从orc表格中插入OVERVITE到avro表格中。我正在努力实现这样的目标:
INSERT OVERWRITE TABLE cm (a,b) PARTITION (year=p_year)
SELECT a,b,p_year FROM orctable
2条答案
按热度按时间rkkpypqq1#
我认为insert语句如下:
ncecgwcz2#
使用
DISTRIBUTE BY
添加动态分区。使用DISTRIBUTE BY
您的查询应如下所示:此查询将生成mapreduce作业,而不是仅Map作业。select子句将转换为Map器的计划,输出将根据(年)对的值分配给还原器。insert子句将转换为reducer中写入动态分区的计划。