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
收到了相同的错误:很抱歉上面的评论没有格式化。编辑不让我编辑文本。我也工作过。。。谢谢