我的csv数据格式不同,因此此语法符合预期。但是,当我使用“ 生成创建表DDL ”选项时,它不会为行格式返回相同的参数。
原始和正确的行格式:
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语句。
答案 0 :(得分:1)
那是不可能的。 SHOW CREATE TABLE …
最多会为您提供可以实际使用的SQL,但是很多时候它会给您带来什至无法运行的信息,更不用说创建表的相同副本了。
您应该改用Glue API。使用GetTable
检索表结构,修改所需的内容(例如名称,数据库和/或位置),然后使用CreateTable
创建新表。
SHOW CREATE TABLE …
的作用是在Glue中查找表元数据,然后(很差)将其发现的内容转换为SQL DDL。您自己进行胶水操作会更好。