簡體   English   中英

Hive插入從Hive CLI可以正常工作,但在終端上失敗

[英]Hive Insert works fine from Hive CLI but fails from terminal

我目前有以下情況:

我有一個shellscript,它創建兩個表,然后用另一個數據填充其中一個。

我的腳本看起來像這樣:

    hive -e "CREATE EXTERNAL TABLE table1 ... ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/user/input/'"
    hive -e "CREATE EXTERNAL TABLE table2 ... PARTITIONED BY ..."
    hive -e "WITH data AS (SELECT date, ...) FROM data INSERT OVERWRITE TABLE table2 PARTITION(part_date) SELECT ... date"

然后再一些shellscript從table2中選擇某些數據。 我使用shellscript是因為必須先應用一些邏輯,然后才能對table2進行選擇。

腳本運行無錯誤,表已創建,表table1有數據,但table2最終為空。 出於某種原因,當我使用非常小的測試數據集時它可以工作,但是一旦數據集變大(> 1GB), table2就空了。

如果我從Hives CLI手動運行相同的命令,則一切正常,並且table2包含預期的數據。

為什么會發生這種情況,我該如何解決?

您的shell腳本命令必須順序執行才能獲取table2數據。

在您的shell腳本中嘗試以下操作:

hive -e "your first query" && 
hive -e "your second query" &&
hive -e "your third query"

這應該一個接一個地執行您的配置單元查詢。 (第二個查詢等待第一個查詢完成,第三個查詢同時等待第一個查詢和第二個查詢)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM