2016-02-23 28 views
1

我正在使用配置單元版本1.2.1。我是新手蜂巢。
我已經添加了一列到TABLE_2並顯示NULL值。我想把時間戳列的DATE部分放到新創建的列中。我試着用下面的查詢:在配置單元中添加列後顯示NULL值

ALTER TABLE table_2 ADD COLUMNS(DATE_COL string); 
INSERT INTO table_2 (DATE_COL) AS SELECT SUBSTRING(TIMESTAMP_COL,-19,10) FROM table_1 ; 

這是工作還是BT它顯示了在新創建的date_col的NULL值。 我想在DATE_COL中約會。

table_1有13列,table_2有14列(13 + DATE_COL)。

TIMESTAMP_COL: - STRING。

DATE_COL - STRING。

請告訴我如何解決這個問題。

+0

您是否正確使用substring(string | binary A,int start,int len)函數?是什麼讓你使用起始索引-19。您可以在table_1的TIMESTAMP列中共享示例記錄嗎? –

+0

@SachinGaikwad我認爲sustring()從最後一個值開始計數。 19是全長。所以如果我說-19這意味着它將從第一個開始。那是我怎麼做。如果你知道背後的實際技術原因,請分享。 – shinchaan

+0

我會建議首先運行這個查詢與選擇子句具有相同的功能,並檢查值是否爲你的需要,然後去更新或插入。 –

回答

0

使用UPDATE命令: 語法:

UPDATE表名SET列=值[,列=值...] [WHERE表達式]

蜂巢版本0.14.0:INSERT ... VALUES, UPDATE和DELETE現在可用於完整的ACID支持。

+0

謝謝。我在網上查了一下這個蜂房的交易屬性。我也經歷了教程,添加了有效參數設置的hive-site.xml文件。即使它不工作。 – shinchaan

+0

如果您使用的是.14以上的hive版本,請更新您的查詢工作。 – Jack

+0

我hv解決了它似乎的問題。創建了由(date_col)分區的外部表T_1。之後,從table_1插入T_1分區(date_col)選擇子字符串(timestamp_col,-19,10);這樣做可以嗎?請建議..! – shinchaan