2017-02-23 44 views
1

我有一個完全寫入Hive分區表的Spark應用程序。我在Dataframe中添加了兩個新列,我堅持在Hive中,它停止寫入Hive,並且沒有插入任何行。我有一個DF3 = DF1.join(DF2, where(...), "inner")。我堅持DF3。連接的日誌輸出顯示出來,沒有錯誤日誌。Spark沒有寫入Hive

  1. 在DF3中DF1和DF2的所有列會自動出現嗎?

  2. 我在Hive模式中添加了2個新的列,我在代碼和Hive模式之間保持順序(即在兩個地方的最後一列之後)。任何想法爲什麼它不寫入蜂巢?

+0

刷新蜂巢元數據? – Andrew

+0

是的,他們看起來不錯。這個連接是否正確?看起來像是掛在這裏:DataFrame DFJoin = DF1.join(DF2,DF1.col(「device」)。equalTo(DF2.col(「id」))or(DF1.col(「device」)。equalTo DF2.col(「new_id」))),「inner」); – Mark

回答

0

試試你的描述你的數據框和你的蜂巢表和他們相比通過以下任一

MSCK REPAIR TABLE 
REFRESH [db_name.]table_name 
INVALIDATE METADATA [table_name]