You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Dongjoon Hyun (JIRA)" <ji...@apache.org> on 2016/07/27 13:46:20 UTC

[jira] [Updated] (SPARK-16726) Improve `Union/Intersect/Except` error messages on incompatible types

     [ https://issues.apache.org/jira/browse/SPARK-16726?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dongjoon Hyun updated SPARK-16726:
----------------------------------
    Description: 
Currently, `UNION/INTERSECT/EXCEPT` query on incompatible types shows a misleading error message like `unresolved operator Union`. We had better show a more correct message. This will help users in the situation of [SPARK-16704|https://issues.apache.org/jira/browse/SPARK-16704]

h4. Before
{code}
scala> sql("select 1,2,3 union (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: unresolved operator 'Union;
scala> sql("select 1,2,3 intersect (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: unresolved operator 'Intersect;
scala> sql("select 1,2,3 except (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: unresolved operator 'Except;
{code}

h4. After
{code}
scala> sql("select 1,2,3 union (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: Union can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
scala> sql("select 1,2,3 intersect (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: Intersect can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
scala> sql("select 1,2,3 except (select 1,array(2),3)")
org.apache.spark.sql.AnalysisException: Except can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
{code}


  was:
Currently, `UNION` query on incompatible types shows a misleading error message, e.g., `unresolved operator Union`. We had better show a more correct message. This will help users in the situation of [SPARK-16704|https://issues.apache.org/jira/browse/SPARK-16704]

h4. Before
{code}
scala> sql("select 1 union (select array(1))")
org.apache.spark.sql.AnalysisException: unresolved operator 'Union;
{code}

h4. After
{code}
scala> sql("select 1 union (select array(1))")
org.apache.spark.sql.AnalysisException: Unions can only be performed on tables with the compatible column types, but one table has '[IntegerType]' and another table has '[ArrayType(IntegerType,false)]';
{code}


        Summary: Improve `Union/Intersect/Except` error messages on incompatible types  (was: Improve error message for `Union` queries on incompatible types)

> Improve `Union/Intersect/Except` error messages on incompatible types
> ---------------------------------------------------------------------
>
>                 Key: SPARK-16726
>                 URL: https://issues.apache.org/jira/browse/SPARK-16726
>             Project: Spark
>          Issue Type: Improvement
>            Reporter: Dongjoon Hyun
>            Priority: Minor
>
> Currently, `UNION/INTERSECT/EXCEPT` query on incompatible types shows a misleading error message like `unresolved operator Union`. We had better show a more correct message. This will help users in the situation of [SPARK-16704|https://issues.apache.org/jira/browse/SPARK-16704]
> h4. Before
> {code}
> scala> sql("select 1,2,3 union (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: unresolved operator 'Union;
> scala> sql("select 1,2,3 intersect (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: unresolved operator 'Intersect;
> scala> sql("select 1,2,3 except (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: unresolved operator 'Except;
> {code}
> h4. After
> {code}
> scala> sql("select 1,2,3 union (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: Union can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
> scala> sql("select 1,2,3 intersect (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: Intersect can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
> scala> sql("select 1,2,3 except (select 1,array(2),3)")
> org.apache.spark.sql.AnalysisException: Except can only be performed on tables with the compatible column types. The first table has `[IntegerType, IntegerType, IntegerType]` and second table has `[IntegerType, ArrayType(IntegerType,false), IntegerType]`. The 2th column is incompatible;
> {code}



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

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@spark.apache.org
For additional commands, e-mail: issues-help@spark.apache.org