You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Furcy Pin (JIRA)" <ji...@apache.org> on 2016/11/27 11:57:58 UTC

[jira] [Commented] (SPARK-17212) TypeCoercion support widening conversion between DateType and TimestampType

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

Furcy Pin commented on SPARK-17212:
-----------------------------------

Hi,

I have the same issue between DateType and StringType on Sparkv 2.0.2, do you know if this pull request fixes it?

in Spark 2.0.2 :
{code}
spark-sql> select greatest("2015-02-02", date("2015-01-01")) ;
Error in query: cannot resolve 'greatest('2015-02-02', CAST('2015-01-01' AS DATE))' due to data type mismatch: The expressions should all have the same type, got GREATEST(string, date).; line 1 pos 7
{code}

in Hive 2.0:
{code}
hive (default)> select greatest("2015-02-02", date("2015-01-01")) ;
OK
_c0
2015-02-02
{code}


> TypeCoercion support widening conversion between DateType and TimestampType
> ---------------------------------------------------------------------------
>
>                 Key: SPARK-17212
>                 URL: https://issues.apache.org/jira/browse/SPARK-17212
>             Project: Spark
>          Issue Type: Bug
>          Components: SQL
>            Reporter: Hyukjin Kwon
>            Assignee: Hyukjin Kwon
>             Fix For: 2.1.0
>
>
> Currently, type-widening does not work between {{TimestampType}} and {{DateType}}.
> This applies to {{SetOperation}}, {{Union}}, {{In}}, {{CaseWhen}}, {{Greatest}}, {{Leatest}}, {{CreateArray}}, {{CreateMap}} and {{Coalesce}}.
> For a simple example, 
> {code}
> Seq(Tuple2(new Timestamp(0), new Date(0))).toDF("a", "b").selectExpr("greatest(a, b)").show()
> {code}
> {code}
> cannot resolve 'greatest(`a`, `b`)' due to data type mismatch: The expressions should all have the same type, got GREATEST(timestamp, date)
> {code}
> or Union as below:
> {code}
> val a = Seq(Tuple1(new Timestamp(0))).toDF()
> val b = Seq(Tuple1(new Date(0))).toDF()
> a.union(b).show()
> {code}
> {code}
> Union can only be performed on tables with the compatible column types. DateType <> TimestampType at the first column of the second table;
> {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