0

私は、とりわけ、ハイブテーブルを作成し、そのテーブルに csv ファイル (アプリオリに名前が知られていない) をロードする必要がある bash スクリプトを作成しています。ファイルの名前をfoo.csv環境変数にエクスポートmyfileし、コマンドを試しました

hive --hiveconf mf=$myfile -e 'set mf; set hiveconf:mf; load data local inpath ${hiveconf:mf} into table mytable'

エラーを返します

FAILED: ParseException line 1:23 mismatched input 'foo' expecting StringLiteral near 'inpath' in load statement

私はすでにファイルへの絶対パスを使用しようとしましたが、どちらも機能しません: パスが/mypath/foo.csvエラーの場合

FAILED: ParseException line 1:23 mismatched input '/' expecting StringLiteral near 'inpath' in load statement

このようにファイル名を直接入れようとしても

hive -e 'load data local inpath foo.csv into table mytable'

まったく機能せず、スローされたエラーは以前と同じです。

これらのコマンドの何が問題なのか、誰にもわかりませんか? おかげさまで、本当に助かりました。

4

1 に答える 1

1

ファイル名は次の中に配置する必要があります''

load data local inpath 'foo.csv' into table mytable

スクリプトでは、おそらくこれらの記号をエスケープして、別の解析例外が発生しないようにする必要があります。

また、ロード時に言語マニュアルを参照してください

于 2014-10-31T06:22:27.400 に答える