2017-12-19 9 views
0

rundateというパーティション化されたカラムを持つ外部テーブルがあります。私は、コードが正常に動作し、私はパーティションを見ることができますハイブパーティションテーブルのデータを表示できません

spark.sql("ALTER TABLE table ADD IF NOT EXISTS PARTITION(rundate = '2017-12-19')") 

を使用してパーティションを作成

DataFrame.write.mode(SaveMode.Overwrite).orc("s3://test/table") 

を使用してテーブルにデータをロードすることができます。しかし、私はHiveテーブルのデータを見ることができません。

答えて

0

正しいフォルダ構造でパーティションデータを保存しておらず、データが存在しないパーティションも手動で追加しました。

2つのもの: 1.まず、外部テーブルが作成された場所のデータに保存されていることを確認します。また、フォルダ構造もハイブの期待と同じです。例:外部テーブル名がtableで、パーティション列がrundate、パーティション値が2017-12-19、外部テーブルがs3://test/tableを指しているとします。そして、以下のようにパーティション2017-12-19のためのデータを保存します。

DataFrame.write.mode(SaveMode.Overwrite).orc("s3://test/table/rundate=2017-12-19/") 

2.Once保存することは、最新の追加パーティションにハイブのメタストアを更新するには、コマンドの下に成功しています。

synatx: msck repair table <tablename> 
msck repair table table 
+0

ご協力いただきありがとうございます – Srinivas

関連する問題