在 Databricks 中执行 'show create table' OpenCSV Serde Hive Table 时出错
Error in performing 'show create table' OpenCSV Serde Hive Table in Databricks
我在 DDL 下面的 Databricks 中用 OpenCSV Serde 创建了一个 table :-
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'='');
Table 的创建没有任何问题,但是在尝试 运行 下面的命令时:-
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 上试过。
改为使用以下内容:
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 总是 returns Spark DDL,即使给定的 table 是一个 Hive SerDe table。要生成 Hive DDL,请改用 SHOW CREATE TABLE table_identifier AS SERDE 命令。
我在 DDL 下面的 Databricks 中用 OpenCSV Serde 创建了一个 table :-
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'='');
Table 的创建没有任何问题,但是在尝试 运行 下面的命令时:-
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 上试过。
改为使用以下内容:
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 总是 returns Spark DDL,即使给定的 table 是一个 Hive SerDe table。要生成 Hive DDL,请改用 SHOW CREATE TABLE table_identifier AS SERDE 命令。