web-dev-qa-db-ja.com

ハイブエラー:parseexception missing EOF

ここで間違っていることはわかりません:

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

ここに何かが欠けていますか?任意のポインタが役立ちます。ありがとう!

10
lex

以下のように、「LOCATION」を「tblproperties」の前に配置してみてください。

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コマンドの公式定義を参照してください。

https://cwiki.Apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-CreateTable

12
Haiying Wang

@Haiying Wangは、LOCATIONtblpropertiesの前に置くことを指摘しました。

しかし、stored asの上にlocationが指定されている場合にもエラーが発生すると思います。

正しい順序に固執することをお勧めします。

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 Create Table

1
Ani Menon

ParseException line lineNumber missing EOF at '。' near 'schemaName':

Linuxスクリプトから次のコマンドを実行してHiveテーブルを切り詰めようとしたときに、上記のエラーが発生しました

dse -u username -p password Hive -e "truncate table keyspace.tablename;"

修正:次のようにスクリプト行内のコマンドを分離する必要があります-

dse -u username -p password Hive -e "キースペースを使用;テーブルkeyspace.tablenameを切り捨て;"

ハッピーコーディング!

0

この投稿を確認してください:

。txtファイルからORCとしてHiveに保存されているテーブルへのデータの読み込み

そして、指定されたディレクトリ/user/Hive/test_tableにあるソースファイルを確認します。ファイルが.txtまたはその他のnon ORC形式である場合は、上記の投稿の手順に従ってエラーから抜け出すことができます。

0
Neels

Hiveでテーブルを作成中に同じエラーが発生しました。

Dropコマンドを使用してテーブルをドロップしてから、再びテーブル作成コマンドを実行しました。

私のために働いた。

0
Cyrus

コマンド「Hive -f file.hql」を使用してファイルからHiveQLを実行しているときにこのエラーが表示される場合。そして、それがクエリの最初の行を最も明確に指しているのは、これが前のクエリのセミコロン(;)を忘れたためです。パーサーは、各クエリの終了文字としてセミコロン(;)を探します。例えば:

DROP TABLE IF EXISTS default.emp create table default.emp(field1 type、field2 type)ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' TEXTFILE LOCATION 's3:// gts-promocube/source-data/Lowes/POS /'として保存;

上記をファイルに保存してHive -fで実行すると、次のエラーが表示されます:FAILED:ParseException line 2:0 missing EOF at 'CREATE' near emp。

解決策:上記のDROP TABLEコマンドにセミコロン(;)を挿入します。

0
Ramesh Gajula