2016-07-30 2 views
0

私はハイブする初心者です。私は複雑なデータマップ検索で問題を抱えています。特定のキー値ペアを取得しようとすると、レコードからヌルも引き出されます。ハイブマップデータ検索でヌル値を取得する

これは私のクエリ

select ph["yy"] from phone; 

であり、これは、クエリを実行した後

gua {"p":123456} 
xxx {"yy":7987897} 

結果が

hive> select ph["yy"] from phone;  
OK 
NULL 
7987897 
である私のデータである私のテーブル電話の

name     string          
ph      map<string,int> 

を説明

私はそれがなぜnull値を投げているのだろうと思っています。

大変ありがとうございます。

答えて

1

これはビルド済みです。これは配列型の列にも有効です。 NULLを避けるには、WHERE句を使用します。

- ハイブを使用したプログラミング:

配列インデックスは、Javaのように、0ベースです。存在しない要素を参照すると、NULLを返すこと

hive> SELECT name, subordinates[0] FROM employees; 
John Doe Mary Smith 
Mary Smith Bill King 
Todd Jones NULL 
Bill King NULL 

注:ここで部下配列の最初の要素を選択するクエリです。また、抽出されたSTRING値は引用符で囲まれなくなりました。

関連する問題