2016-07-28 70 views
2

我試圖更改我的外部配置單元表的分區位置。無法更改配置單元中的分區位置

命令,我嘗試運行:

ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/hivetimestamp=2016-07-26 15:00:00' 

錯誤,我得到:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.net.URISyntaxException: Illegal character in path 

我的數據特定分區存在於路徑:

/data/dev/event/uploads/hivetimestamp=date time/actual_data 

我覺得空間正在創造一個問題。但任何幫助都會很棒。

+0

試圖逃避使用空間\:集位置 '/數據的/ dev /事件/上傳/ hivetimestamp = 2016年7月26日\ 15:00:00' –

+0

沒有不起作用。它仍然會給出同樣的錯誤。爲了跳過太空角色,我曾嘗試過。 – Austin

回答

0

你在路徑中的hdfs是正確的?

add/actual_data /?

0

由於「2016-07-26 15:00:00」中的空間,Hive無法讀取完整的hdfs路徑; 你可以使用下面的命令;

hive> set part=2016-07-26 15:00:00; 
hive>ALTER TALBE sl_uploads PARTITION (hivetimestamp='2016-07-26 15:00:00') SET LOCATION '/data/dev/event/uploads/[email protected]'; 
+0

它設置零件並更改分區位置,但是當我從sl_uploads運行選擇計數(*),其中hivetimestamp ='2016-07-26 15:00:00'它不起作用。它給出錯誤: FAILED:SemanticException java.io.FileNotFoundException:文件hdfs:// data/dev/event/uploads/hivetimestamp = @部分不存在。 – Austin