Hive_ NULL NVL、COALESCE、NULLIFを処理するいくつかの関数

公式ドキュメント:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

参照ドキュメント:

https://blog.csdn.net/qq_34105362/article/details/80402806

 

       Hiveは多くの関数を提供し、コマンドラインのshow関数ですべての関数を一覧表示できます。これらの関数名はmysqlに非常に似ており、ほとんどが同じであることがわかります。describefunction functionNameで関数の使用法を確認できます。

 

 

Hiveで一般的に使用されるnull値処理関数は、NVL(0.11 +)、COALESCE、NULLIF(2.3.0 +)です。

null値処理関数の主な機能: 

NVL(0.11)、COALESCEはnullデータを補完します

nullif(a、b)は、主にaとbが同じであるかどうかを判別するためのもので、同じである場合はnullを返し、そうでない場合はaを返します。

 

これらの機能の紹介を見てみましょう。

 

1.COALESCE

T

COALESCE(T v1、T v2、...)

NULLでない最初のv、またはすべてのvがNULLの場合はNULLを返します。

hive> describe function coalesce;
OK
coalesce(a1, a2, ...) - Returns the first non-null argument
Time taken: 0.028 seconds, Fetched: 1 row(s)

Coalese関数の機能は、NVL関数が少し似ていることです。その利点は、より多くのオプションがあることです。
形式は次のとおり
です。結合(expr1、expr2、expr3….. exprn)
は、複数の式のプレースホルダーを指定できることを意味します。すべての式は同じ型でなければなりません。または暗黙的に同じ型に変換できます。

 

実際の作業では、通常、このメソッドを使用してNULLデータにデフォルト値を設定します。

 

 

2. NVL

T nvl(T値、T default_value) 値がnullの場合はデフォルト値を返し、それ以外の場合は値を返します(HIve  0.11以降)。
hive> describe function nvl;
OK
nvl(value,default_value) - Returns default value if value is null else returns value
Time taken: 0.019 seconds, Fetched: 1 row(s)

NVL(expr1、expr2):
1. Null値変換関数;
2. mysql-nullif(expr1、expr2)、sqlserver-ifnull(expr1、expr2)と同様。

備考:
1. expr1がNULLの場合、戻り値はexpr2です。それ以外の場合は、expr1を返します。
2.数値型、文字型、日付型に適用できますが、expr1とexpr2のデータ型は同じ型でなければなりません。
 

3.NULLIF 

T nullif(a、b)

a = bの場合はNULLを返します。それ以外の場合は(Hive 2.3.0以降を返します 

省略形:CASE WHEN a = b then NULL NULL else a

 この機能を一時的にサポートしていないHiveの下位バージョンを使用しているため、Hiveコンソールのデモは行いません。

NULLIF(exp1、expr2)関数の機能は、exp1とexp2が等しい場合はNULLを返し、それ以外の場合は最初の値を返します。

 

元の記事を519件公開 1146 件を賞賛 283万回の閲覧

おすすめ

転載: blog.csdn.net/u010003835/article/details/102468899