You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by ma...@apache.org on 2023/02/06 10:52:06 UTC
[spark] branch branch-3.4 updated: [SPARK-42302][SQL] Assign name to _LEGACY_ERROR_TEMP_2135
This is an automated email from the ASF dual-hosted git repository.
maxgekk pushed a commit to branch branch-3.4
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/branch-3.4 by this push:
new b5609bd4a6e [SPARK-42302][SQL] Assign name to _LEGACY_ERROR_TEMP_2135
b5609bd4a6e is described below
commit b5609bd4a6e3708c151fed205cb5c22fcde5ac6b
Author: itholic <ha...@databricks.com>
AuthorDate: Mon Feb 6 13:51:40 2023 +0300
[SPARK-42302][SQL] Assign name to _LEGACY_ERROR_TEMP_2135
### What changes were proposed in this pull request?
This PR proposes to assign name to _LEGACY_ERROR_TEMP_2135, "FAILED_PARSE_EMPTY_STRING".
### Why are the changes needed?
We should assign proper name to _LEGACY_ERROR_TEMP_*
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
`./build/sbt "sql/testOnly org.apache.spark.sql.SQLQueryTestSuite*"`
Closes #39872 from itholic/LEGACY_2135.
Lead-authored-by: itholic <ha...@databricks.com>
Co-authored-by: Haejoon Lee <44...@users.noreply.github.com>
Signed-off-by: Max Gekk <ma...@gmail.com>
(cherry picked from commit b6eadf00fc527df428a451ebb20777de9965b2de)
Signed-off-by: Max Gekk <ma...@gmail.com>
---
core/src/main/resources/error/error-classes.json | 11 ++++++-----
.../org/apache/spark/sql/catalyst/json/JacksonParser.scala | 4 ++--
.../org/apache/spark/sql/errors/QueryExecutionErrors.scala | 7 +++----
.../spark/sql/execution/datasources/json/JsonSuite.scala | 12 +++++++-----
4 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/core/src/main/resources/error/error-classes.json b/core/src/main/resources/error/error-classes.json
index 305480a61c3..0245e75d1c4 100644
--- a/core/src/main/resources/error/error-classes.json
+++ b/core/src/main/resources/error/error-classes.json
@@ -506,6 +506,12 @@
],
"sqlState" : "22003"
},
+ "EMPTY_JSON_FIELD_VALUE" : {
+ "message" : [
+ "Failed to parse an empty string for data type <dataType>."
+ ],
+ "sqlState" : "42604"
+ },
"ENCODER_NOT_FOUND" : {
"message" : [
"Not found an encoder of the type <typeName> to Spark SQL internal representation. Consider to change the input type to one of supported at https://spark.apache.org/docs/latest/sql-ref-datatypes.html."
@@ -4237,11 +4243,6 @@
"Cannot parse field value <value> for pattern <pattern> as target spark data type [<dataType>]."
]
},
- "_LEGACY_ERROR_TEMP_2135" : {
- "message" : [
- "Failed to parse an empty string for data type <dataType>."
- ]
- },
"_LEGACY_ERROR_TEMP_2138" : {
"message" : [
"Cannot have circular references in bean class, but got the circular reference of class <clazz>."
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
index 3fe26e87499..bf07d65caa0 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/json/JacksonParser.scala
@@ -420,12 +420,12 @@ class JacksonParser(
case VALUE_STRING if parser.getTextLength < 1 && allowEmptyString =>
dataType match {
case FloatType | DoubleType | TimestampType | DateType =>
- throw QueryExecutionErrors.failToParseEmptyStringForDataTypeError(dataType)
+ throw QueryExecutionErrors.emptyJsonFieldValueError(dataType)
case _ => null
}
case VALUE_STRING if parser.getTextLength < 1 =>
- throw QueryExecutionErrors.failToParseEmptyStringForDataTypeError(dataType)
+ throw QueryExecutionErrors.emptyJsonFieldValueError(dataType)
case token =>
// We cannot parse this token based on the given data type. So, we throw a
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
index 54ae497a114..c8c0ad67c45 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryExecutionErrors.scala
@@ -1431,11 +1431,10 @@ private[sql] object QueryExecutionErrors extends QueryErrorsBase {
"dataType" -> dataType.toString()))
}
- def failToParseEmptyStringForDataTypeError(dataType: DataType): SparkRuntimeException = {
+ def emptyJsonFieldValueError(dataType: DataType): SparkRuntimeException = {
new SparkRuntimeException(
- errorClass = "_LEGACY_ERROR_TEMP_2135",
- messageParameters = Map(
- "dataType" -> dataType.catalogString))
+ errorClass = "EMPTY_JSON_FIELD_VALUE",
+ messageParameters = Map("dataType" -> toSQLType(dataType)))
}
def cannotParseJSONFieldError(parser: JsonParser, jsonType: JsonToken, dataType: DataType)
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/json/JsonSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/json/JsonSuite.scala
index af8d4bd58d6..efc062e927c 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/json/JsonSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/execution/datasources/json/JsonSuite.scala
@@ -35,6 +35,7 @@ import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{functions => F, _}
import org.apache.spark.sql.catalyst.json._
import org.apache.spark.sql.catalyst.util.{DateTimeTestUtils, DateTimeUtils}
+import org.apache.spark.sql.catalyst.util.TypeUtils.toSQLType
import org.apache.spark.sql.execution.ExternalRDD
import org.apache.spark.sql.execution.datasources.{CommonFileDataSourceSuite, DataSource, InMemoryFileIndex, NoopCache}
import org.apache.spark.sql.execution.datasources.v2.json.JsonScanBuilder
@@ -2608,11 +2609,12 @@ abstract class JsonSuite
private def failedOnEmptyString(dataType: DataType): Unit = {
val df = spark.read.schema(s"a ${dataType.catalogString}")
.option("mode", "FAILFAST").json(Seq("""{"a":""}""").toDS)
- val errMessage = intercept[SparkException] {
- df.collect()
- }.getMessage
- assert(errMessage.contains(
- s"Failed to parse an empty string for data type ${dataType.catalogString}"))
+ val e = intercept[SparkException] {df.collect()}
+ checkError(
+ exception = e.getCause.getCause.getCause.asInstanceOf[SparkRuntimeException],
+ errorClass = "EMPTY_JSON_FIELD_VALUE",
+ parameters = Map("dataType" -> toSQLType(dataType))
+ )
}
private def emptyString(dataType: DataType, expected: Any): Unit = {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org