2016-08-24 4 views
1

私は、管理ハイブテーブルを持っていたし、次のコマンドを使用して別のデータベースに移動:テーブルが正常に移動されたすべてのデータは、データベースの下にあるスパークは、テーブルの内容を読み取ることができない

alter table_name rename to new_db.table_name 

今。テーブルはHIVEでうまく表示されます。しかし、Sparkからテーブルを読み込もうとすると、スキーマを読むことができますが、そこにはコンテンツはありません。つまり、countはゼロを返します。何が起きたの?この問題を解決するにはどうすればよいですか?

私は次のコードを使用して火花でそれを読み込む:

val t = sqlContext.table("new_db.table_name") 
+0

あなたが火花コードを追加することができます/ wの場所が正しい場合は、二重にチェックすることができますか? – David

+0

私はそれをしました。これが原因で間違ってはいけません。なぜなら、私はいつもHIVEのテーブルをスパークにロードする方法です –

答えて

0

は時々ちょうど名前を変更することは十分ではありません、私はまた、場所を変更しなければなりませんでした。

sqlContext.sql(""" 
ALTER TABLE new_table 
SET LOCATION "hdfs://.../new_location" 
""") 

そして、良い対策のためのスパークで

sqlContext.sql(""" 
REFRESH TABLE new_table 
""") 

をテーブルを更新describe formatted new_table

関連する問題