0

我在 DDL 下面的 Databricks 中使用 OpenCSV Serde 创建了一个表:-

    CREATE TABLE db_name.table_name( col1 String,
col2 String)
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
    WITH SERDEPROPERTIES (
    "escapeChar"="\"",
    "quoteChar"="\"",
    "separatorChar"=",")
    LOCATION
    's3://s3_loc'
    TBLPROPERTIES('serialization.null.format'=''); 

表的创建没有任何问题,但在尝试运行以下命令时:-

Show create table db_name.table_name

我收到以下错误消息:-

AnalysisException: Failed to execute SHOW CREATE TABLE against table `db_name`.`table_name`, which is created by Hive and uses the following unsupported serde configuration SERDE: org.apache.hadoop.hive.serde2.OpenCSVSerde INPUTFORMAT: org.apache.hadoop.mapred.TextInputFormat OUTPUTFORMAT: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat

请提出解决方案。在 Databricks 版本 6.4、7.1 和 8.4 上进行了尝试。

4

1 回答 1

1

请改用以下内容:

Show create table db_name.table_name AS SERDE

https://github.com/apache/spark/blob/master/docs/sql-migration-guide.md

在 Spark 3.0 中,SHOW CREATE TABLE table_identifier 始终返回 Spark DDL,即使给定的表是 Hive SerDe 表。要生成 Hive DDL,请改用 SHOW CREATE TABLE table_identifier AS SERDE 命令。

于 2021-09-14T21:31:58.843 回答