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