■ はじめに
https://dk521123.hatenablog.com/entry/2020/03/10/224640
https://dk521123.hatenablog.com/entry/2021/06/18/184713
の続き。 今回は、文字列操作する際の関数群をまとめておく。
目次
【0】API仕様 【1】lower() / lcase() 【2】upper() / ucase() 【3】trim() / ltrim() / rtrim() 【4】substr() / substring() 【5】concat() / concat_ws() 【6】regexp_extract()
【0】API仕様
String Functions
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-StringFunctions
【1】lower() / lcase()
* 小文字への変換
構文
lower(string A)
lcase(string A)
サンプル
hive > SELECT lower('fOoBaR'); OK foobar
【2】upper() / ucase()
* 大文字への変換
構文
upper(string A)
ucase(string A)
サンプル
hive > SELECT upper('fOoBaR'); OK FOOBAR
【3】trim() / ltrim() / rtrim()
* trim():ホワイトスペースの前後の除去 * ltrim():ホワイトスペースの前の除去(Left:左) * rtrim():ホワイトスペースの後の除去(Right:右)
構文
trim(string A) ltrim(string A) rtrim(string A)
サンプル
hive > SELECT trim(' foobar '); -- 'foobar' (前後の空白を除去) hive > SELECT ltrim(' foobar '); -- 'foobar ' (後ろ・左の空白を除去) hive > SELECT rtrim(' foobar '); -- ' foobar' (前・右の空白を除去)
【4】substr() / substring()
文字列の切り出し
構文
-- [1] substr(string|binary A, int start) substring(string|binary A, int start) -- [2] substr(string|binary A, int start, int len) substring(string|binary A, int start, int len)
使用上の注意
第二引数「start」は、0発進のインデックス番号じゃなく、 何文字目(1番目~)から開始するかを指定する。
より抜粋 ~~~~~ For example, substr('foobar', 4) results in 'bar'. (see [http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr]). ~~~~~
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_substr
サンプル
hive > SELECT SUBSTRING('2021-06-21 10:12:23', 1, 10); OK 2021-06-21
【5】concat() / concat_ws()
* concat() : 文字列の連結 * concat_ws() : 文字列の連結する際に区切り文字(SEP)でくっつける
構文
-- concat() concat(string|binary A, string|binary B...) -- concat_ws() concat_ws(string SEP, string A, string B...) concat_ws(string SEP, array<string>)
【6】regexp_extract()
* 正規表現による文字列抽出
構文
-- pattern を使用して抽出されたストリングを返す -- 'index'は Java 正規表現 Matcher group() のインデックス regexp_extract( string subject, string pattern, int index)
※ Java 正規表現 Matcher group()
https://docs.oracle.com/javase/jp/8/docs/api/java/util/regex/Matcher.html#group-int-
参考文献
https://open-groove.net/hive/hive-string-functions/
関連記事
Hive / HiveQL ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/02/25/231235
Hive / HiveQL ~ HiveQL関数 / 文字列置換編 ~
https://dk521123.hatenablog.com/entry/2020/03/10/224640
Hive / HiveQL ~ HiveQL関数・regexp_replace編 ~
https://dk521123.hatenablog.com/entry/2021/06/18/184713
Hive / HiveQL ~ HiveQL関数 / NULL関連編 ~
https://dk521123.hatenablog.com/entry/2021/06/22/213241
Hive / HiveQL ~ HiveQL関数 / 日時・日付操作編 ~
https://dk521123.hatenablog.com/entry/2021/02/11/233633
Hive / HiveQL ~ HiveQL / あれこれ編 ~
https://dk521123.hatenablog.com/entry/2020/03/04/225943
Hive / HiveQL ~ データをクリーニングする ~
https://dk521123.hatenablog.com/entry/2020/07/06/232350