You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Alexandre Fouché (JIRA)" <ji...@apache.org> on 2013/01/20 11:40:13 UTC
[jira] [Created] (HIVE-3919) Partition query refused when PPD is
disabled (due to HIVE-3699)
Alexandre Fouché created HIVE-3919:
--------------------------------------
Summary: Partition query refused when PPD is disabled (due to HIVE-3699)
Key: HIVE-3919
URL: https://issues.apache.org/jira/browse/HIVE-3919
Project: Hive
Issue Type: Bug
Components: Query Processor
Environment: Cloudera 4.1 on Amazon Linux (rebranded Centos 6): hive-0.9.0+150-1.cdh4.1.1.p0.4.el6.noarch
Reporter: Alexandre Fouché
The query below was working perfectly when hive.optimize.ppd=true. But i had to disable this property because my results are impacted by unresolved HIVE-3699.
But now that hive.optimize.ppd=false, the query from table1 partitionned by field 'day' is refused, even if the query has the partition predicate.
>From HIVE-830 it says that the partition pruner depends on it, so that may explain why my queries are refused when Predictive Push Down is disabled.
The query is accepted and run if i set hive.mapred.mode=nonstrict. But from Hive-server2 logs and input path lists and also processing, all dataset regardless of partitions is deserialized !
set hive.optimize.ppd = true;
set hive.mapred.mode=strict;
FROM table1
INSERT OVERWRITE TABLE general1
SELECT qs_cs_s_kid, day, qs_cs_s_aid, COUNT(*) WHERE qs_cs_s_cat='PRINT' AND (day>=20121015 and day<=20130103) GROUP BY qs_cs_s_kid, day, qs_cs_s_aid;
-> Parsed fine, but wrong results when i add multiple 'insert overwrite'
set hive.optimize.ppd = false;
set hive.mapred.mode=strict;
FROM table1
INSERT OVERWRITE TABLE general1
SELECT qs_cs_s_kid, day, qs_cs_s_aid, COUNT(*) WHERE qs_cs_s_cat='PRINT' AND (day>=20121015 and day<=20130103) GROUP BY qs_cs_s_kid, day, qs_cs_s_aid;
Error: Error while processing statement: FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "table1" Table "table1" (state=42000,code=10041)
Error: Error while processing statement: FAILED: SemanticException [Error 10041]: No partition predicate found for Alias "table1" Table "table1" (state=42000,code=10041)
The table 'table1' was created like this, it is partitionned by 'day':
CREATE TABLE table1
PARTITIONED BY (day BIGINT)
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'
TBLPROPERTIES ('avro.schema.literal'='{
"type": "record",
"name": "Log",
"fields" : [
{"name": "time_stamp", "type": ["null", "int"], "default": null},
(...)
]
}')
;
set hive.optimize.ppd = false;
set hive.mapred.mode=strict;
FROM table1
INSERT OVERWRITE TABLE general1
SELECT qs_cs_s_kid, day, qs_cs_s_aid, COUNT(*) WHERE qs_cs_s_cat='PRINT' AND day=20121015 GROUP BY qs_cs_s_kid, day, qs_cs_s_aid;
-> FAILS TOO
set hive.optimize.ppd = false;
INSERT OVERWRITE TABLE general1
SELECT qs_cs_s_kid, day, qs_cs_s_aid, COUNT(*) FROM table1 WHERE qs_cs_s_cat='PRINT' AND day=20121015 GROUP BY qs_cs_s_kid, day, qs_cs_s_aid;
-> FAILS TOO
set hive.optimize.ppd = false;
set hive.mapred.mode=nonstrict;
FROM table1
INSERT OVERWRITE TABLE general1
SELECT qs_cs_s_kid, day, qs_cs_s_aid, COUNT(*) WHERE qs_cs_s_cat='PRINT' AND day=20121015 GROUP BY qs_cs_s_kid, day, qs_cs_s_aid;
-> WORKS, but from Hive-server2 logs and input path lists and also processing, all dataset regardless of partitions is deserialized !
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira