Yes, I think it would be great if this can be documented.

--Xuefu

On Sun, Feb 1, 2015 at 6:34 PM, Lefty Leverenz <leftylever...@gmail.com>
wrote:

> Xuefu, should this be documented in the Union wikidoc
> <https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Union>?
>
> Is it relevant for other query clauses?
>
> -- Lefty
>
> On Sun, Feb 1, 2015 at 11:27 AM, Philippe Kernévez <pkerne...@octo.com>
> wrote:
>
>> Perfect.
>>
>> Thank you Xuefu.
>>
>> Philippe
>>
>> On Fri, Jan 30, 2015 at 11:32 PM, Xuefu Zhang <xzh...@cloudera.com>
>> wrote:
>>
>>> Use column alias:
>>>
>>> INSERT OVERWRITE TABLE all_dictionaries_ext
>>>      SELECT name, id, category FROM dictionary
>>>      UNION ALL SELECT NAME, ID, "CAMPAIGN" as category FROM md_campaigns
>>>
>>>
>>> On Fri, Jan 30, 2015 at 1:41 PM, Philippe Kernévez <pkerne...@octo.com>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> I would like to do union all with a field that is hardcoded in the
>>>> request.
>>>>
>>>>    INSERT OVERWRITE TABLE all_dictionaries_ext
>>>>      SELECT name, id, category FROM dictionary
>>>>      UNION ALL SELECT NAME, ID, "CAMPAIGN" FROM md_campaigns
>>>>
>>>> Name type is String
>>>> Id type is int
>>>> Category type is string
>>>>
>>>> When I run this command I had an error :
>>>> FAILED: SemanticException 4:47 Schema of both sides of union should
>>>> match. _u1-subquery2 does not have the field category. Error encountered
>>>> near token 'md_campaigns'
>>>>
>>>> I supposed that the error is cause by the String "CAMPAIGN" which
>>>> should not have a type.
>>>>
>>>> How can do this kind of union ?
>>>>
>>>> The union all with 2 hard coded fields is ok.
>>>>   INSERT OVERWRITE TABLE all_dictionaries_ext
>>>>     SELECT NAME, ID, "CAMPAIGN" FROM md_campaigns
>>>>      UNION ALL SELECT NAME, ID, "AD_SERVER" FROM md_ad_servers
>>>>      UNION ALL SELECT NAME, ID, "AVERTISER" FROM md_advertisers
>>>>      UNION ALL SELECT NAME, ID, "AGENCIES" FROM md_agencies
>>>>
>>>>
>>>> More debug info :
>>>>
>>>> 15/01/30 22:34:23 [main]: INFO parse.ParseDriver: Parsing command:
>>>>   INSERT OVERWRITE TABLE all_dictionaries_ext
>>>>     SELECT name, id, category FROM byoa_dictionary
>>>>     UNION ALL SELECT NAME, ID, "CAMPAIGN" FROM md_campaigns
>>>> 15/01/30 22:34:23 [main]: INFO parse.ParseDriver: Parse Completed
>>>> 15/01/30 22:34:23 [main]: INFO log.PerfLogger: </PERFLOG method=parse
>>>> start=1422653663887 end=1422653663900 duration=13
>>>> from=org.apache.hadoop.hive.ql.Driver>
>>>> 15/01/30 22:34:23 [main]: INFO log.PerfLogger: <PERFLOG
>>>> method=semanticAnalyze from=org.apache.hadoop.hive.ql.Driver>
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Starting
>>>> Semantic Analysis
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Completed phase
>>>> 1 of Semantic Analysis
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> source tables
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> subqueries
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> source tables
>>>> 15/01/30 22:34:23 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> subqueries
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> destination tables
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> source tables
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> subqueries
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> destination tables
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Get metadata for
>>>> destination tables
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Completed
>>>> getting MetaData in Semantic Analysis
>>>> 15/01/30 22:34:24 [main]: INFO parse.SemanticAnalyzer: Not invoking CBO
>>>> because the statement has too few joins
>>>> FAILED: SemanticException 4:47 Schema of both sides of union should
>>>> match. _u1-subquery2 does not have the field category. Error encountered
>>>> near token 'md_campaigns'
>>>> 15/01/30 22:34:24 [main]: ERROR ql.Driver: FAILED: SemanticException
>>>> 4:47 Schema of both sides of union should match. _u1-subquery2 does not
>>>> have the field category. Error encountered near token 'md_campaigns'
>>>> org.apache.hadoop.hive.ql.parse.SemanticException: 4:47 Schema of both
>>>> sides of union should match. _u1-subquery2 does not have the field
>>>> category. Error encountered near token 'md_campaigns'
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genUnionPlan(SemanticAnalyzer.java:9007)
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9600)
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9620)
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genPlan(SemanticAnalyzer.java:9607)
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10093)
>>>> at
>>>> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:221)
>>>> at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:415)
>>>> at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:303)
>>>> at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1067)
>>>> at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1129)
>>>> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1004)
>>>> at org.apache.hadoop.hive.ql.Driver.run(Driver.java:994)
>>>> at
>>>> org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:247)
>>>> at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:199)
>>>> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:410)
>>>> at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:345)
>>>> at
>>>> org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:733)
>>>> at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:677)
>>>> at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>> at
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>> at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
>>>> at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
>>>>
>>>> Regards,
>>>> --
>>>> Philippe Kernévez
>>>>
>>>>
>>>
>>
>>
>> --
>> Philippe Kernévez
>>
>>
>>
>> Directeur technique (Suisse),
>> pkerne...@octo.com
>> +41 79 888 33 32
>>
>> Retrouvez OCTO sur OCTO Talk : http://blog.octo.com
>> OCTO Technology http://www.octo.com
>>
>
>

Reply via email to