You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@spark.apache.org by "Michael Armbrust (JIRA)" <ji...@apache.org> on 2014/11/15 07:40:34 UTC

[jira] [Updated] (SPARK-4293) Make Cast be able to handle complex types.

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

Michael Armbrust updated SPARK-4293:
------------------------------------
            Priority: Critical  (was: Major)
    Target Version/s: 1.2.0

> Make Cast be able to handle complex types.
> ------------------------------------------
>
>                 Key: SPARK-4293
>                 URL: https://issues.apache.org/jira/browse/SPARK-4293
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Takuya Ueshin
>            Priority: Critical
>
> Inserting data of type including {{ArrayType.containsNull == false}} or {{MapType.valueContainsNull == false}} or {{StructType.fields.exists(_.nullable == false)}} into Hive table will fail because {{Cast}} inserted by {{HiveMetastoreCatalog.PreInsertionCasts}} rule of {{Analyzer}} can't handle these types correctly.
> Complex type cast rule proposal:
> * Cast for non-complex types should be able to cast the same as before.
> * Cast for {{ArrayType}} can evaluate if
> ** Element type can cast
> ** Nullability rule doesn't break
> * Cast for {{MapType}} can evaluate if
> ** Key type can cast
> ** Nullability for casted key type is {{false}}
> ** Value type can cast
> ** Nullability rule for value type doesn't break
> * Cast for {{StructType}} can evaluate if
> ** The field size is the same
> ** Each field can cast
> ** Nullability rule for each field doesn't break
> * The nested structure should be the same.
> Nullability rule:
> * If the casted type is {{nullable == true}}, the target nullability should be {{true}}



--
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