[
https://issues.apache.org/jira/browse/SPARK-61040?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Hyukjin Kwon reassigned SPARK-61040:
------------------------------------
Assignee: Hyukjin Kwon
> Parse the DDL strings of DataType.fromDDL and of the return types of UDFs on
> the server in the Python client as PySpark does
> ----------------------------------------------------------------------------------------------------------------------------
>
> Key: SPARK-61040
> URL: https://issues.apache.org/jira/browse/SPARK-61040
> Project: Spark
> Issue Type: Bug
> Components: Connect
> Affects Versions: connect-rust-4.3.0
> Reporter: Hyukjin Kwon
> Assignee: Hyukjin Kwon
> Priority: Major
> Labels: pull-request-available
> Fix For: connect-rust-4.3.0
>
>
> In PySpark Connect, {{DataType.fromDDL(ddl)}}, {{StructType.fromDDL}} and
> {{pyspark.sql.types._parse_datatype_string(s)}} parse a DDL string on the
> server of the active session ({{SparkSession._parse_ddl}}, the {{DDLParse}}
> of an {{AnalyzePlanRequest}}), as does a {{UserDefinedFunction}} of its DDL
> return type, as {{udf(f, "a INT NOT NULL")}}. So they take any DDL that Spark
> does, such as {{"a INT NOT NULL COMMENT 'c'"}}, {{"st
> struct<a:int,b:double>"}} and {{"s STRING COLLATE UTF8_LCASE"}}, and raise
> the errors of Spark's parser, such as {{PARSE_SYNTAX_ERROR}} for {{"a INT,"}}.
> The Rust-backed Python client parses them on the client. It raises
> {{ValueError: [INVALID_DATATYPE_FORMAT]}} for {{NOT NULL}} and nested types,
> takes {{"s STRING COLLATE UTF8_LCASE"}} as a string of the collation
> {{collate utf8_lcase}}, and {{"a INT,"}} as {{a INT}}. It has no
> {{pyspark.sql.types._parse_datatype_string}}. Parse them as PySpark does.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]