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 操作会好得多。
我的 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 操作会好得多。