ここで間違っていることはわかりません:
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
ここに何かが欠けていますか?任意のポインタが役立ちます。ありがとう!
以下のように、「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
@Haiying Wangは、LOCATION
をtblproperties
の前に置くことを指摘しました。
しかし、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)
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を切り捨て;"
ハッピーコーディング!
この投稿を確認してください:
。txtファイルからORCとしてHiveに保存されているテーブルへのデータの読み込み
そして、指定されたディレクトリ/user/Hive/test_table
にあるソースファイルを確認します。ファイルが.txt
またはその他のnon ORC
形式である場合は、上記の投稿の手順に従ってエラーから抜け出すことができます。
Hiveでテーブルを作成中に同じエラーが発生しました。
Dropコマンドを使用してテーブルをドロップしてから、再びテーブル作成コマンドを実行しました。
私のために働いた。
コマンド「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コマンドにセミコロン(;)を挿入します。