diff --git a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetSchemaConverter.scala b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetSchemaConverter.scala index a23eebe6cb..f3bfd99368 100644 --- a/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetSchemaConverter.scala +++ b/sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/parquet/ParquetSchemaConverter.scala @@ -586,11 +586,9 @@ private[sql] object ParquetSchemaConverter { def checkFieldName(name: String): Unit = { // ,;{}()\n\t= and space are special characters in Parquet schema - checkConversionRequirement( - !name.matches(".*[ ,;{}()\n\t=].*"), - s"""Attribute name "$name" contains invalid character(s) among " ,;{}()\\n\\t=". - |Please use alias to rename it. - """.stripMargin.split("\n").mkString(" ").trim) + if (name.matches(".*[ ,;{}()\n\t=].*")) { + throw QueryCompilationErrors.columnNameContainsInvalidCharactersError(name) + } } def checkFieldNames(schema: StructType): Unit = { diff --git a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala index 3e01fcbe16..b1f348c37e 100644 --- a/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala +++ b/sql/hive/src/test/scala/org/apache/spark/sql/hive/execution/HiveDDLSuite.scala @@ -3002,8 +3002,8 @@ class HiveDDLSuite spark.sql(s"INSERT OVERWRITE LOCAL DIRECTORY '${path.getCanonicalPath}' " + s"STORED AS PARQUET SELECT ID, if(1=1, 1, 0), abs(id), '^-' FROM v") }.getMessage - assert(e.contains("Attribute name \"(IF((1 = 1), 1, 0))\" contains" + - " invalid character(s) among \" ,;{}()\\n\\t=\". Please use alias to rename it.")) + assert(e.contains("Column name \"(IF((1 = 1), 1, 0))\" contains invalid character(s). " + + "Please use alias to rename it.")) } } } @@ -3022,8 +3022,8 @@ class HiveDDLSuite |FROM v """.stripMargin) }.getMessage - assert(e.contains("Attribute name \"IF(ID=1,ID,0)\" contains" + - " invalid character(s) among \" ,;{}()\\n\\t=\". Please use alias to rename it.")) + assert(e.contains("Column name \"IF(ID=1,ID,0)\" contains" + + " invalid character(s). Please use alias to rename it.")) } } }