1
我正在學習關於將數據從Amazon Kinesis流式傳輸到Amazon EMR上的Hive的教程。我成功地使用Hive Internal Table來完成這項工作,但是當我嘗試使用外部表格時,我遇到了一個奇怪的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)來驗證它們可以一起使用。將數據添加到Hive外部表
這是我用來構建配置單元外部表的代碼。
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'