DDL 返回的行格式不正确

incorrect row format returned by DDL

我的 csv 数据格式不同,此语法按预期工作。但是当我使用“Generate create table DDL”选项时,它不会return行格式的相同参数。

原始和正确的行格式:

ROW FORMAT  SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
  WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ',',
   "quoteChar"     = "\""
)

SHOW CREATE 生成的行格式TABLE xyz 语法:

ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
WITH SERDEPROPERTIES ( 
  'quoteChar'='\"') 

我想知道如何找回我最初使用的完全相同的 create table 语句。

那是不可能的。 SHOW CREATE TABLE … 最多会给你 SQL 实际可以使用的东西,但很多时候会给你一些甚至不会 运行 的东西,更不用说创建 [=24] 的相同副本了=].

您应该改用 Glue API。使用 GetTable 检索 table 结构,修改您需要的内容(例如名称、数据库、and/or 位置),然后使用 CreateTable 创建新 table.

SHOW CREATE TABLE … 所做的是它在 Glue 中查找 table 元数据,然后将它找到的内容(很差)转换为 SQL DDL。你自己做 Glue 操作会好得多。