[英]Add data into Hive external table
我正在关注有关将数据从Amazon Kinesis流传输到Amazon EMR上的Hive的教程。 我可以使用Hive内部表成功完成此操作,但是当我使用外部表进行相同操作时,遇到了奇怪的EOF错误。 我以前没有一起使用STORED BY和STORED AS,我认为这可能是问题所在。 我使用了IBM指南( http://www-01.ibm.com/support/knowledgecenter/SSPT3X_2.1.1/com.ibm.swg.im.infosphere.biginsights.bigsql.doc/doc/bsql_create_table.html )进行验证它们可以一起使用。
这是我用来构建配置单元外部表的代码。
DROP TABLE apachelog;
CREATE EXTERNAL TABLE apachelog (
host STRING,
IDENTITY STRING,
USER STRING,
TIME STRING,
request STRING,
STATUS STRING,
SIZE STRING,
referrer STRING,
agent STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") ([0-9]*) ([0-9]*) ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\")"
)
STORED AS TEXTFILE
STORED BY
'com.amazon.emr.kinesis.hive.KinesisStorageHandler'
TBLPROPERTIES("kinesis.stream.name"="AccessLogStream")
LOCATION 's3://<bucket-name>/AccessLogStreamOP/';
这是错误:
hive> source create_access_log.hql;
OK
Time taken: 0.464 seconds
FAILED: ParseException line 19:0 missing EOF at 'STORED' near 'TEXTFILE'
[
[ROW FORMAT row_format] [STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
]
您可以使用ROW FORMAT或STORED BY子句,并且WITH SERDEPROPERTIES应该跟随STORED BY
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.