美好的一天,我打算创建一个表,但是出现了错误。
我的代码:
CREATE TABLE weblogs(
host STRING,
identity STRING,
customer STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\".*\") ([^ \"]*|\".*\"))?",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
STORED AS TEXTFILE;
我的错误:
失败:执行错误,从org.apache.hadoop.hive.ql.exec.DDLTask返回代码1。 stringTypeInfo
我正在使用apache-hive-1.2.2-bin,derby模式。 enter image description here
请帮帮我。 谢谢。
答案 0 :(得分:0)
这可能是因为你真的想要一个外部表而忘记指定'外部'。请尝试以下方法:
CREATE EXTERNAL TABLE网络日志( 主机STRING, 身份STRING, 客户STRING, 时间STRING, 请求STRING, 状态STRING, 大小STRING, 参考STRING, 代理人STRING) 行格式SERDE'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' 与SERDEPROPERTIES( “input.regex”=“([^] )([^] )([^] )( - | \ [[^ \]] \])( [^ \“] | \”[^ \“] \”)( - | [0-9] )( - | [0-9] )(? :([^ \“] | \”。 \“)([^ \”] | \“。 \”))?“, “output.format.string”=“%1 $ s%2 $ s%3 $ s%4 $ s%5 $ s%6 $ s%7 $ s%8 $ s%9 $ s” ) 存储为文本文件;