You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by jo...@apache.org on 2022/06/09 19:35:26 UTC

[spark] branch master updated: [SPARK-39422][SQL] Improve error message for 'SHOW CREATE TABLE' with unsupported serdes

This is an automated email from the ASF dual-hosted git repository.

joshrosen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/master by this push:
     new 8765eea1c08 [SPARK-39422][SQL] Improve error message for 'SHOW CREATE TABLE' with unsupported serdes
8765eea1c08 is described below

commit 8765eea1c08bc58a0cfc22b7cfbc0b5645cc81f9
Author: Josh Rosen <jo...@databricks.com>
AuthorDate: Thu Jun 9 12:34:27 2022 -0700

    [SPARK-39422][SQL] Improve error message for 'SHOW CREATE TABLE' with unsupported serdes
    
    ### What changes were proposed in this pull request?
    
    This PR improves the error message that is thrown when trying to run `SHOW CREATE TABLE` on a Hive table with an unsupported serde. Currently this results in an error like
    
    ```
    org.apache.spark.sql.AnalysisException: Failed to execute SHOW CREATE TABLE against table rcFileTable, which is created by Hive and uses the following unsupported serde configuration
     SERDE: org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe INPUTFORMAT: org.apache.hadoop.hive.ql.io.RCFileInputFormat OUTPUTFORMAT: org.apache.hadoop.hive.ql.io.RCFileOutputFormat
    ```
    
    This patch improves this error message by adding a suggestion to use `SHOW CREATE TABLE ... AS SERDE`:
    
    ```
    org.apache.spark.sql.AnalysisException: Failed to execute SHOW CREATE TABLE against table rcFileTable, which is created by Hive and uses the following unsupported serde configuration
     SERDE: org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe INPUTFORMAT: org.apache.hadoop.hive.ql.io.RCFileInputFormat OUTPUTFORMAT: org.apache.hadoop.hive.ql.io.RCFileOutputFormat
    Please use `SHOW CREATE TABLE rcFileTable AS SERDE` to show Hive DDL instead.
    ```
    
    The suggestion's wording is consistent with other error messages thrown by SHOW CREATE TABLE.
    
    ### Why are the changes needed?
    
    The existing error message is confusing.
    
    ### Does this PR introduce _any_ user-facing change?
    
    Yes, it improves a user-facing error message.
    
    ### How was this patch tested?
    
    Manually tested with
    
    ```
    CREATE TABLE rcFileTable(i INT)
        ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe'
        STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
                  OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
    
    SHOW CREATE TABLE rcFileTable
    ```
    
    to trigger the error. Confirmed that the `AS SERDE` suggestion actually works.
    
    Closes #36814 from JoshRosen/suggest-show-create-table-as-serde-in-error-message.
    
    Authored-by: Josh Rosen <jo...@databricks.com>
    Signed-off-by: Josh Rosen <jo...@databricks.com>
---
 .../scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala     | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala
index 68f4320ff67..2a8692efd0d 100644
--- a/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala
+++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/errors/QueryCompilationErrors.scala
@@ -1992,7 +1992,8 @@ private[sql] object QueryCompilationErrors extends QueryErrorsBase {
     new AnalysisException("Failed to execute SHOW CREATE TABLE against table " +
         s"${table.identifier}, which is created by Hive and uses the " +
         "following unsupported serde configuration\n" +
-        builder.toString()
+        builder.toString() + "\n" +
+        s"Please use `SHOW CREATE TABLE ${table.identifier} AS SERDE` to show Hive DDL instead."
     )
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org