You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Xuefu Zhang (JIRA)" <ji...@apache.org> on 2014/11/23 04:38:12 UTC

[jira] [Commented] (HIVE-8920) SplitSparkWorkResolver doesn't work with UnionWork [Spark Branch]

    [ https://issues.apache.org/jira/browse/HIVE-8920?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14222297#comment-14222297 ] 

Xuefu Zhang commented on HIVE-8920:
-----------------------------------

It appears to me that the plan illustrated in the diagram is not quite right for the query. The source of the multi-insert is a result of UNION, but how come R5 only takes only part of the union input? To me, R5 should be connected to U3 as well.

> SplitSparkWorkResolver doesn't work with UnionWork [Spark Branch]
> -----------------------------------------------------------------
>
>                 Key: HIVE-8920
>                 URL: https://issues.apache.org/jira/browse/HIVE-8920
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Spark
>    Affects Versions: spark-branch
>            Reporter: Chao
>
> The following query will not work:
> {code}
> from (select * from table0 union all select * from table1) s
> insert overwrite table table3 select s.x, count(1) group by s.x
> insert overwrite table table4 select s.y, count(1) group by s.y;
> {code}
> Currently, the plan for this query, before SplitSparkWorkResolver, looks like below:
> {noformat}
>    M1    M2
>      \  / \
>       U3   R5
>       |
>       R4
> {noformat}
> In {{SplitSparkWorkResolver#splitBaseWork}}, it assumes that the {{childWork}} is a ReduceWork, but for this case, you can see that for M2 the childWork could be UnionWork U3. Thus, the code will fail.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)