2017-02-23 4 views
1

私はハイブのパーティションテーブルに完全に書き込みを行っていたSparkアプリケーションを持っています。私はHiveで永続化していたDataframeに2つの新しい列を追加し、Hiveへの書き込みをやめ、静かに行を挿入しませんでした。スパークがハイブに書き込まない

私にはDF3 = DF1.join(DF2, where(...), "inner")があります。私はDF3を維持しています。結合のログ出力が表示され、エラーログは表示されません。

  1. DF3では、DF1とDF2のすべての列が自動的に表示されますか?

  2. 私はHiveスキーマのDF2から2つの新しい列を追加し、コードとHiveスキーマの間で順序が維持されます(つまり、両方の場所で最後の列の直後)。なぜハイブに書いていないのでしょうか?

+0

のいずれかを使用してハイブメタデータをリフレッシュしてみあなたのデータフレームとあなたのハイブのテーブルを記述し、それらを比較することがありますか? – Andrew

+0

はい、うまく見えます。この結合は正しいですか?ここにぶら下がっているようです:DataFrame DFJoin = DF1.join(DF2、DF1.col( "device")。equalTo(DF2.col( "id"))。または(DF1.col( "device")。equalTo DF2.col( "new_id"))))、 "inner"); – Mark

答えて

0

は、以下の

MSCK REPAIR TABLE 
REFRESH [db_name.]table_name 
INVALIDATE METADATA [table_name] 
関連する問題