gpt4 book ai didi

hadoop - 向 Hive 外部表添加数据

转载 作者:可可西里 更新时间:2023-11-01 15:35:36 26 4
gpt4 key购买 nike

我正在学习有关将数据从 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'

最佳答案

根据Hive LangaugeManual DDL

  [
[ROW FORMAT row_format] [STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
]

您可以使用 ROW FORMAT 或 STORED BY 子句,并且 WITH SERDEPROPERTIES 应该跟在 STORED BY 之后

关于hadoop - 向 Hive 外部表添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26164498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com