DDL返回的行格式不正确

时间:2019-08-04 04:35:13

标签: amazon-athena

我的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语句。

1 个答案:

答案 0 :(得分:1)

那是不可能的。 SHOW CREATE TABLE …最多会为您提供可以实际使用的SQL,但是很多时候它会给您带来什至无法运行的信息,更不用说创建表的相同副本了。

您应该改用Glue API。使用GetTable检索表结构,修改所需的内容(例如名称,数据库和/或位置),然后使用CreateTable创建新表。

SHOW CREATE TABLE …的作用是在Glue中查找表元数据,然后(很差)将其发现的内容转换为SQL DDL。您自己进行胶水操作会更好。