2016-09-15 6 views
2

2つのテーブルのデータを結合するためにallを使用するクエリがあります。共用前の最初の照会はすべてレコードを戻しますが、2番目の照会はレコードを戻しません(この実行のためのレコードはゼロです。次のロードのレコードがあります)。問題は、2番目のクエリのレコードがないときに、ハイパーがNullpointer例外をスローすることです。Nullpointer Exception Hive with Unionすべて

select col1,col2,col3 from A 
union all 
select col1,col2,col3 from B 

私はAテーブルにレコードを持っています。ただし、Bテーブルのレコード数は負荷ごとに異なる場合があります。 Bテーブルにレコードがある場合、クエリは完全に機能します。

これはバージョン0.12までのハイブのバグであるという事実を認識しています。しかし、私はバージョン0.14を使用しています。何が根本的な原因である可能性がある任意のアイデア。

注:My B表はパーティション化されています。私がパーティションを削除すると、私は問題に直面しません。しかし、パーティションが必要です。

+0

これに関するヒントはありますか? –

答えて

0

これは遅れているかもしれませんが、それ以外の方法で試しましたか?

select col1,col2,col3 from B 
union all 
select col1,col2,col3 from A 

私は全く同じ問題がありました。空集合を持つ連合はNPEを与える。しかし空の組合は空ではないセットが私のためにうまくいくようです。これはこの問題に対する最良のアプローチではないかもしれませんが、次のバージョンのハイブでこれが修正されるまでの回避策です。

関連する問題