hive:create表中的ignore字段

ws51t4hk  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(325)

我必须将json格式的数据加载到hive中。问题是存在一个字段,该字段是每个记录不同的日期,这会导致各种问题。一条记录的ddl如下所示:

CREATE EXTERNAL TABLE `not_really_awesome_table` (
  `super_wtf`         struct<
    `10-02-2019`:        string
  >
  `super_blah`        struct <
    `bleh`:             string,
    `blah`:             string,
    `sub_blah`:         struct <
      `blah_field`:       string,
      `bleh_field`:       string
    >
  >
)
ROW FORMAT  serde 'org.openx.data.jsonserde.JsonSerDe'
with serdeproperties ( 'ignore.malformed.json' = 'true' )
LOCATION
  's3://wtf/is/this/lol'
TBLPROPERTIES (
  'has_encrypted_data'='false',
  'transient_lastDdlTime'='1539066055')
;

有没有办法忽略 super-wtf 字段或将其转换为某种类型以避免进一步解析?

9njqaruj

9njqaruj1#

你可以跳过 super-wtf 列并添加其他所有内容:

CREATE EXTERNAL TABLE `not_really_awesome_table` (
  `super_blah`        struct <
    `bleh`:             string,
    `blah`:             string,
    `sub_blah`:         struct <
      `blah_field`:       string,
      `bleh_field`:       string
    >
  >
)

在这种情况下,它不会从json解析。
或者定义 super-wtf 列组件 map<string, string> 在ddl中

相关问题