创建Hive表时如何向使用serde创建的表添加列?

kyo*_*cho 2 sql hadoop hive

  • 表描述信息
hive> desc log23;
OK
col_name        data_type       comment
17/05/25 10:49:12 INFO mapred.FileInputFormat: Total input files to process : 1
host                    string                  from deserializer
remote_host             string                  from deserializer
remote_logname          string                  from deserializer
remote_user             string                  from deserializer
request_time            string                  from deserializer
request_method          string                  from deserializer
request_url             string                  from deserializer
first_line              string                  from deserializer
http_status             string                  from deserializer
bytes                   string                  from deserializer
referer                 string                  from deserializer
agent                   string                  from deserializer
Time taken: 0.049 seconds, Fetched: 12 row(s)
Run Code Online (Sandbox Code Playgroud)
  • apache日志格式序列化
serializationLib:org.apache.hadoop.hive.contrib.serde2.RegexSerDe, parameters:{output.format.string=%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s %10$s %11$s %12$s, serialization.format=1, input.regex=([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) (-|\[[^\]]*\]) "(.[A-Z]*) (.*) (.*)" (-|[0-9]*) (-|[0-9]*) "(.*)" "(.*)"})
Run Code Online (Sandbox Code Playgroud)
  • 使用 Alter 查询添加列
hive> alter table log23 add columns (code string);

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. 
Error: type expected at the position 0 of derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:derived from deserializer:<derived from deserializer:derived from deserializer:string but>'<' is found.`
Run Code Online (Sandbox Code Playgroud)

我收到类似上面的错误失败。如何添加列...?

Zac*_*ach 5

不幸的是,如果您使用过 serde,则无法添加列。这是一个已知问题: https ://issues.apache.org/jira/browse/HIVE-17713