2015-03-03 2 views
0

Я пытаюсь перенести команду из улья кли Билайн:Использование билайн с операторами многострочных терпит неудачу

$ hive -e "USE my_db;ALTER TABLE apache_log ADD PARTITION(year = 2015, month = 3) LOCATION 'hdfs://DB//user/my_db/prod/apache_log/2015/03';" 

это работает.

Но при выполнении этого в beeline ему не нравится «USE my_db;» часть:

$ beeline -u jdbc:hive2://my_server.com -n my_user -p my_password -e "USE my_db;ALTER TABLE apache_log ADD PARTITION(year = 2015, month = 3) LOCATION 'hdfs://DB/user/my_user/prod/apache_log/2015/03';" 
Error: Error while compiling statement: FAILED: ParseException line 1:9 missing EOF at ';' near 'my_db' (state=42000,code=40000) 
Beeline version 0.12.0-cdh5.1.3 by Apache Hive 

Основываясь на сообщении об ошибке (ожидая EOF), мне кажется, что билайн не будет принимать мульти-заявление, как улей кли привык делать?

ответ

0

Можно сделать это, делать это таким образом:

(я написал его на более одна строка, чтобы сделать ее более читаемой)

beeline 
-u jdbc:hive2://my_server.com 
-n my_user -p my_password 
-e "USE my_db;" 
-e "ALTER TABLE apache_log ADD PARTITION(year = 2015, month = 3) LOCATION 'hdfs://DB/user/my_user/prod/apache_log/2015/03';" 
-e "--other nice queries..."