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

[jira] [Commented] (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:comment-tabpanel&focusedCommentId=14201670#comment-14201670 ] 

Apache Spark commented on SPARK-4293:
-------------------------------------

User 'ueshin' has created a pull request for this issue:
https://github.com/apache/spark/pull/3150

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