Hadoop 配置单元错误:parseexception缺少EOF
我不确定我在这里做错了什么:Hadoop 配置单元错误:parseexception缺少EOF,hadoop,hive,hiveql,hcatalog,Hadoop,Hive,Hiveql,Hcatalog,我不确定我在这里做错了什么: hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING) stored as orc tblproperties ("orc.compress"="NONE") LOCATION "/user/hive/test_table"; FAILED: ParseException line 1:107 missing EOF at 'LOCATIO
hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
tblproperties ("orc.compress"="NONE")
LOCATION "/user/hive/test_table";
FAILED: ParseException line 1:107 missing EOF at 'LOCATION' near ')'
虽然以下查询工作正常:
hive> CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
tblproperties ("orc.compress"="NONE");
OK
Time taken: 0.106 seconds
我是不是遗漏了什么。任何指示都会有帮助。谢谢 查看此帖子:
并检查指定目录下的源文件/user/hive/test\u table
。如果文件是.txt
或其他一些非ORC
格式,那么您可以按照上面文章中的步骤来排除错误。尝试将“位置”放在“TBLProperty”前面,如下图所示,对我有用
CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
LOCATION "/user/hive/test_table"
tblproperties ("orc.compress"="NONE");
似乎连《编程蜂巢》(Programming Hive)一书中的示例SQL的顺序都错了。请参考create table命令的官方定义:
解析“schemaName”附近“.”处缺少EOF的异常行号: 尝试从linux脚本执行以下命令以截断配置单元表时出现上述错误 dse-u username-p password配置单元-e“截断表键空间.tablename;” 修复: 需要将脚本行中的命令分开,如下所示- dse-u username-p password配置单元-e“使用键空间;截断表键空间.tablename;”
快乐编码 在配置单元中创建表时出现相同错误 我使用drop命令删除表,然后再次运行CREATETABLE命令
为我工作。@Haiying Wang指出,
位置
要放在tblproperty
前面
CREATE TABLE default.testtbl(int1 INT,string1 STRING)
stored as orc
LOCATION "/user/hive/test_table"
tblproperties ("orc.compress"="NONE");
但是我认为当位置在存储为时也会发生错误
最好坚持正确的顺序:
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later)
[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS]
[SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)]
ON ((col_value, col_value, ...), (col_value, col_value, ...), ...)
[STORED AS DIRECTORIES]
[
[ROW FORMAT row_format]
[STORED AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later)
]
[LOCATION hdfs_path]
[TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later)
[AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
如果在使用命令“hive-f file.hql”从文件运行HiveQL时看到此错误,请参阅:。它指向查询的第一行,这是因为之前的查询中忘记了分号(;)。
因为解析器查找分号(;)作为每个查询的终止符。
例如:
如果存在,则删除表default.emp
创建表default.emp(
field1类型,
字段2(类型)
以“|”结尾的行格式分隔字段
存储为文本文件
位置“s3://gts-promocube/source-data/Lowes/POS/”
如果将上述内容保存在一个文件中并使用hive-f执行,则会出现以下错误:
失败:在emp附近的“创建”处缺少异常行2:0 EOF
解决方案:在上面的DROP TABLE命令中加上分号(;)。谢谢您的回复Neels,但我在创建表格时遇到了这个问题。我想知道语法是否错误,或者我需要以子句的形式满足另一个条件。如果我错了,请纠正我,location属性用于显式指定存储表数据的位置。您是否可以尝试这样的操作CREATE table default.testtbl(int1 INT,string1 STRING)存储为TEXTFILE tblproperty(“orc.compress”=“NONE”)location”/user/hive/test\u table
收到了相同的错误:很抱歉上面的评论没有格式化。编辑不让我编辑文本。我也工作过。。。谢谢