公式ドキュメント:
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を返し、それ以外の場合は最初の値を返します。