プロダクト概要
製品の強み
適用シーン
Hive3.1関数名 | 関数機能説明 | DLC関数名 | 差異表現 | 使用参考 |
round | 四捨五入 | 差異なし | select round(1.23); | |
round | 指定された桁数で四捨五入 | 差異なし | select round(1.234,2); | |
bround | HALF_EVENモードでの四捨五入 | DLC関数では、broundに2つのパラメータを渡す必要があります。2番目のパラメータは保持する小数点以下の桁数を指定します。2番目のパラメータを0に設定すると、hiveのbround(double a)と同じ効果があります。 | select bround(1.237,0); | |
bround | HALF_EVENモードでの四捨五入,指定された小数位を保持 | 差異なし | select bround(1.237,2); | |
floor | 切り捨て | 差異なし | select floor(1.23); | |
ceil, ceiling | 切り上げ | 差異なし | select ceil(1.93); select ceiling(1.13); | |
rand | 0から1の範囲内のランダムな数値を返します。シード値(seed)を指定すると、安定したランダム数列が得られます | 差異なし | select rand(); select rand(5); | |
exp | e の a 乗 | 差異なし | select exp(1); select exp(2.4); | |
ln | 自然対数関数 | 差異なし | select ln(2.4); | |
log10 | 10を底とする対数関数 | 差異なし | select log10(2.4); | |
log2 | 2を底とする対数関数 | 差異なし | select log2(2.4); | |
log | 対数関数 | 差異なし | select log(2,4); | |
pow, power | 冪関数 | 差異なし | select pow(2,4); | |
sqrt | 冪根関数 | 差異なし | select sqrt(4); | |
bin | 二進関数 | 差異なし | select bin(4); | |
hex | 十六進関数 | 差異なし | select hex(10); | |
unhex | 16進数を文字列に変換 | unhex | DLC Spark関数では結果をデコードする必要があります | select decode(unhex('3141'), 'UTF-8'); |
conv | 進数変換 | 差異なし | select conv(2,10,2); | |
abs | 絶対値を取る | 差異なし | select abs(-1); | |
pmod | モジュロを取る | 差異なし | select pmod(5,3); | |
sin | 三角関数 sin、a はラジアン | 差異なし | select sin(3.14); | |
asin | 三角関数 arc sin、a はラジアン | 差異なし | select asin(0.5); | |
cos | 三角関数 cos、a はラジアン | 差異なし | select cos(3.14); | |
acos | 三角関数 arc cos、a はラジアン | 差異なし | select acos(1); | |
tan | 三角関数 tan、a はラジアン | 差異なし | select tan(3.14); | |
atan | 三角関数 arc tan、a はラジアン | 差異なし | select atan(1); | |
degrees | ラジアンから角度へ変換 | 差異なし | select degrees(3.14); | |
radians | 角度からラジアンへ変換 | 差異なし | select radians(180); | |
positive | aを返す | 差異なし | select positive(-1); | |
negative | -aを返す | 差異なし | select negative(1); | |
sign | aが正数の場合は1.0を返し、aが負数の場合は-1.0を返します。 aが0の場合は0.0を返します | 差異なし | select sign(1.12); | |
e | 自然定数 e を返します | 差異なし | select e(); | |
pi | 円周率 pi を返します | 差異なし | select pi(); | |
factorial | 階乗 | 差異なし | select factorial(5); | |
cbrt | 立方根 | 差異なし | select cbrt(27); | |
shiftleft | 左シフト | 差異なし | select shiftleft(3,1); | |
shiftright | 右シフト | 差異なし | select shiftright(3,1); | |
shiftrightunsigned | 符号なし右シフト | 差異なし | select shiftrightunsigned(3,1); | |
greatest | 最大値を返す | greatest | パラメータにnull値がある場合、DLC関数はnull値を計算せず、null以外の最大値を返しますが、Hive関数はnullを返します | select greatest(1,2,3.3); |
least | 最小値を返す | least | パラメータにnull値がある場合、DLC関数はnull値を計算せず、null以外の最小値を返しますが、Hive関数はnullを返します | select least(1,2,3.3); |
width_bucket | バケット値、min_value/max_valueに基づいてnum_buckets+1個の同じサイズのバケットを作成し、現在の値が属するバケット番号を返します | 差異なし | select width_bucket(10,1,20,2); |
Hive3.1関数名 | 関数機能説明 | DLC関数名 | 差異表現 | 使用参考 |
size | map / array のサイズを返す | 差異なし | select size(str_to_map('a:1,b:2')); | |
map_keys | マップのキー値リストを返す | 差異なし | select map_keys(str_to_map('a:1,b:2')); | |
map_values | map の value 値リストを返す | 差異なし | select map_values(str_to_map('a:1,b:2')); | |
array_contains | array に value が含まれているかどうか | 差異なし | select array_contains(split('a,b',','),'a'); | |
sort_array | array の要素を昇順に並べ替える | 差異なし | select sort_array(split('1,3,2',',')); |
Hive3.1関数名 | 関数機能説明 | DLC関数名 | 差異表現 | 使用参考 |
binary | 入力されたパラメータをバイナリ配列に変換します | Hive3.1の入力パラメータはstringとbinaryのみサポートしています;DLCはstring、int、long及びbinaryの入力パラメータをサポートしています Hive3.2の出力はstringとして表示されますが、DLCの出力はバイナリ配列であり、stringに変換されません。 | select binary('testString') select binary(1)(HIVE はサポートしていません) select binary(inputCol) from inputTable(HIVE はサポートしていません) | |
cast | 入力されたパラメータを指定されたtype型に強制的に変換します。 指定された式または値を指定された型に強制的に変換できない場合、エラーが発生します。例えば、文字列をlongに変換する際のエラー:Cast function cannot convert value of type VARCHAR(65536) to type LONG | Hive3.1では強制変換に失敗した場合NULLが返されますが、DLCではエラーが発生します。 | select cast('10' as int)select cast(inputCol as int) from inputTable |
Hive3.1関数名 | 関数機能説明 | DLC対応関数名 | 差異表現 | 使用参考 |
from_unixtime | Unix時間(1970-01-01 00:00:00 UTCからの経過秒数)を指定された形式の文字列に変換する関数。 デフォルトの出力時間形式は yyyy-MM-dd HH:mm:ss で、タイムゾーンは現在のシステムで定義されたタイムゾーンです。 | 差異なし | select from_unixtime(12458456) select from_unixtime(100, 'yyyyMMdd HH:mm:ssZ') | |
unix_timestamp | 指定された時間、またはデフォルトで現在の時間を指定し、1970-01-01 00:00:00 UTCから指定された時間までの秒数を返します。 | 差異なし | select unix_timestamp() select unix_timestamp('2023-04-12 00:00:00') select unix_timestamp('2023-04-12', 'yyyy-MM-dd') | |
to_date | 指定された時間を指定し、その時間が含まれる日付を取得します。 例えば2023-04-12 13:14:20が含まれる日付は2023-04-12です。 | HIVEのto_date関数は、指定された形式yyyy-MM-dd HH:mm:ssでのみ入力でき、指定されていない形式の場合は一律NULLを返します。 DLCはデータ形式を指定するためのパラメータを追加でき、入力時間形式をより柔軟にすることができます。 | select to_date('2023-04-12 19:41:23') select to_date('20230412 19:41', 'yyyy-MM-dd HH:mm')(HIVE はサポートしていません) select to_date('20230412 19:41', 'yyyyMMdd HH:mm')(HIVE はサポートしていません) | |
year | 指定された時間を指定し、その時間が含まれる年を取得します。 例えば2023-04-12 13:14:20が含まれる年は2023です | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select year('2023-04-12 19:41:25') select year('2023-04')(HIVE はサポートしていません) | |
quarter | 指定された時間を指定し、その時間が含まれる四半期を取得します。 例えば2023-04-12 13:14:20が含まれる四半期は2です | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select quarter('2023-04-12 19:41') select quarter('2023-04')(HIVE はサポートしていません) | |
month | 指定された時間を指定し、その時間が含まれる月を取得します。 例えば2023-04-12 13:14:20が含まれる月は4です。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 時間形式の月が12を超える場合、HIVEは最後の月との差を計算して余りを取得しますが、DLCはNULLを返します。 | select month('2023-04-12 19:41') select month('2023-04')(HIVE はサポートしていません) | |
day/dayofmonth | 指定された時間を指定し、その時間が含まれる日を取得します。 例えば2023-04-12 13:14:20が含まれる月の12日目です。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 時間形式の日数がその月の日数を超える場合、HIVEはその月の日数で余りを取得しますが、DLCはNULLを返します。 | select day('2023')(HIVE はサポートしていません) select dayofmonth('2023-04-12 19:41') select day('2023-04-12 19:41') | |
hour | 指定された時間を指定し、その時間が含まれる時間を取得します。 例えば2023-04-12 13:14:20が含まれる時間の13時間目です。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 時間形式の時間が23を超える場合、HIVEは23で余りを取得しますが、DLCはNULLを返します。 | select hour('2023-04-12 19:41') select hour('2023-04')(HIVE はサポートしていません) | |
minute | 指定された時間を指定し、その時間が含まれる分を取得します。 例えば2023-04-12 13:14:20が含まれる分は14分目です。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 時間形式の分が59を超える場合、HIVEは60で余りを取得しますが、DLCはNULLを返します。 | select minute('2023-04-12 00:41') select minute('2023-04')(HIVE はサポートしていません) | |
second | 指定された時間を指定し、その時間が含まれる秒を取得します。 例えば2023-04-12 13:14:20が含まれる秒は20秒目です。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 時間形式の秒が59を超える場合、HIVEは60で余りを取得しますが、DLCはNULLを返します。 | select second('2023-04-12 00:41:24') select second('2023-04')(HIVE はサポートしていません) | |
weekofyear | 指定された時間が年間の第何週に当たるかを返します。 例えば2023-04-12 13:14:20は2023年の第15週です。 特に注意が必要なのは、当年の最初の月曜日が第1週の開始と見なされ、日付が当年の最初の月曜日より前の場合、前年の第52週と見なされることです。例えば、2023-01-01は日曜日であるため、weekofyear('2023-01-01')は52、つまり前年の第52週を返し、weekofyear('2023-01-02')は1、つまり当年の第1週を返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select weekofyear('2023-04-12 00:41:25') select weekofyear('2023-04')(HIVE はサポートしていません) | |
extract | extract(field from source)は入力されたsourceの時間または時間間隔から指定されたfieldフィールドを抽出します | extract | HIVEとDLCバージョンは現在、精度の調整をサポートしていません。 DATEまたはTIMESTAMP識別子が明示的に指定されている場合、日付または時刻の形式が一致しないと、DLCはエラーを報告し、HIVEは0を返します。 HIVEはINTERNALの間隔を計算する際、fieldがsourceに存在しない場合、自動的に剰余を計算しますが、DLCはエラーを報告します。例えば、24か月の間隔から年のフィールドを抽出する場合、HIVEは2年を返し、DLCはフィールドが存在しないというエラーを報告します。 | select extract(DAY FROM DATE '2023-04-12') select extract(second from TIMESTAMP '2023-04-12 00:41:25') select extract(month from interval '23-1' YEAR TO MONTH) select extract(month from interval '23' MONTH) select extract(year from interval '23' MONTH) (DLCはサポートしていません) select extract(hour from interval '23 13:23:34.34784' DAY TO SECOND) |
datediff | startDateからendDateまでの日数を計算します。startDateがendDateより遅い場合、負の数が返されます。 いずれかの入力がNULLの場合、NULLを返します | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select datediff('2021', '2022-10')(HIVE はサポートしていません) select datediff('2023-04-13', '2022-04-13 11:00:00') | |
from_utc_timestamp | 指定されたUTC標準時間のtimestampを、指定されたタイムゾーンtimeZoneの時間に変換します。 いずれかの入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 Hiveが返すのは時間形式で、文字列表現はyyyy-MM-dd HH:mm:ssです。 一方、DLCが返すのはUTC標準表現で、例えば上海タイムゾーンではyyyy-MM-ddTHH:mm:ss+08:00となります。 | select from_utc_timestamp('2023-04', 'Asia/Seoul') select from_utc_timestamp('2023-04-12 15:00:00', 'Asia/Shanghai') | |
to_utc_timestamp | 指定されたタイムゾーンtimeZoneの時間のtimestampを、UTC標準時間のtimestampに変換します。 いずれかの入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 Hiveが返すのは時間形式で、文字列表現はyyyy-MM-dd HH:mm:ssです。 一方、DLCが返すのはUTC標準表現で、例えば上海タイムゾーンではyyyy-MM-ddTHH:mm:ss+08:00となります。 | select to_utc_timestamp('2023-04-12 15:00:00', 'Asia/Shanghai') select to_utc_timestamp('2023-04', 'Asia/Shanghai')(HIVE はサポートしていません) | |
date_add | 日付の加算、指定されたstartDateの日付にnumDays日を加えた日付を返します。 numDaysは負の数でも構いません。 いずれかの入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select date_add('2023-04-12 15:00:00', 1) select date_add('2023-04', -1)(HIVE はサポートしていません) | |
date_sub | 日付の減算、指定されたstartDateの日付からnumDays日を引いた日付を返します。 numDaysは負の数でも構いません。 いずれかの入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select date_sub('2023-04-12 15:00:00', 1) select date_sub('2023-04', -1)(HIVE はサポートしていません) | |
current_date | 現在の日付を取得 | 差異なし | select current_date() | |
current_timestamp | 現在の時刻を取得 | 差異なし | select current_timestamp() | |
add_months | 指定された日付(または時刻)に指定された月数を加算した日付を計算します。 入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select add_months('2023-04-12 15:00:00', 1) select add_months('2023-04', -1)(HIVE はサポートしていません) | |
last_day | 指定された日付が含まれる月の最終日を計算します。 入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select last_day('2023-04-12 15:00:00') select last_day('2023-04')(HIVE はサポートしていません) | |
next_day | 指定された日付の後の最初のday_of_weekの日付を計算します。day_of_weekは曜日を表し、月曜日から日曜日までのオプション値があります。 いずれかの入力がNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select next_day('2023-04-12 15:00:00') select next_day('2023-04')(HIVE はサポートしていません) | |
trunc | 指定された日付をformat(年、四半期、月、週など)で短縮した最初の日の日付を計算します。例えば、該当四半期の最初の日、該当月の最初の日、該当週の最初の日など。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 HIVEはWEEK週をサポートしていません。 | select trunc('2023-04-12 15:00:00', 'MONTH') select trunc('2023-04', 'YEAR')(HIVE はサポートしていません) | |
- | 指定された日付をformat(年、四半期、月、週など)で短縮した最初の日の時間を計算します。例えば、該当四半期の最初の日の0時です。truncメソッドとの違いは、date_truncが時間を返す点です。 | HIVEはこの関数をサポートしていません。trunc関数を参照してください。 | select date_trunc('MM', '2023-04-12 15:00:00') select date_trunc('SECOND', '2023-04-12 15:00:60') | |
months_between | date1からdate2までの月数を計算します。date1<date2の場合、負の数が返されます。 なお、計算時には、各月を31日と見積もり、分母を31とします。分子は2つの時間の実際の差をミリ秒単位で正確に算出した値となります。最終的な計算結果は小数となります。 いずれかの入力パラメータがNULLの場合、NULLを返します。 | HIVEの入力はyyyyまたはyyyy-MM形式をサポートしていませんが、他の時間または日付形式はすべてサポートしています。 DLCはyyyyまたはyyyy-MM形式をサポートできます。 | select months_between('2023-04-12 15:00:00', '2023-04-12 15:00:00') select months_between('2023-04', '2023-04-12 15:00:00')(HIVE はサポートしていません) | |
date_format | いずれかの入力パラメータがNULLの場合、NULLを返します。 | dateまたはTIMESTAMPの形式が正しくない場合、またはfmtテンプレートの形式が正しくない場合、HIVEはNULLを返し、DLCはエラーを報告します。 | select date_format('2023-04-12 15:00:00', 'y') select date_format('2023-04-12', 'yyyy-MM-dd HH:mm') |
Hive3.1関数名 | 関数機能説明 | DLC関数名 | 差異表現 | 利用参考 |
if | 条件が真の場合、valueTrueを返し、それ以外の場合はvalueFalseOrNullを返します | 条件がNULLの場合、HIVEは条件を偽と判断しますが、DLCはエラーを報告します | select if(1<2, 12, 'false') | |
isnull | aがNULLの場合、trueを返し、それ以外の場合はfalseを返します | 差異なし | select isnull('false') | |
isnotnull | aがNULLでない場合、trueを返し、それ以外の場合はfalseを返します | 差異なし | select isnotnull('false') | |
nvl | 値がNULLの場合、2番目のパラメータを返します | 差異なし | select nvl(NULL, 'false') select nvl(1, 'false') | |
coalesce | 最初のNULLでないパラメータを返します | 差異なし | select coalesce(NULL, 'false') | |
case/when | 一致判定 | case/when | 選択したタイプが一致しない場合、HIVEは整数型と文字列型の暗黙的な変換のみをサポートしますが、DLCはさらにboolean型などの暗黙的な変換もサポートします。 | select CASE 'c' WHEN 'a' THEN 1 WHEN 'b' THEN 2 ELSE 0 END; select CASE WHEN 1 > 0 THEN 1 WHEN 2 > 0 THEN 2.0 ELSE 1.2 END; |
nullif | パラメータ a=b の場合、null を返し、それ以外の場合は a を返します | HIVEは最初のパラメータがNULLであることをサポートしませんが、DLCは任意のパラメータがNULLであることをサポートできます。 | select nullif(1, 'test'); select nullif(NULL, 'test');(HIVEはサポートしていません) | |
assert_true | 「条件」が真でない場合、例外をスローします。それ以外の場合はnullを返します。 | 差異なし | select assert_true(1>0) |
Hive3.1関数名 | 関数機能説明 | DLC対応関数名 | 差異表現 | 利用参考 |
ascii | strの最初の文字列の数値を返す | 差異なし | select ascii('222'); | |
base64 | パラメータをバイナリからbase64文字列に変換する | 差異なし | select base64('tencent'); | |
character_length | UTF-8文字列に含まれる文字数を返す | 差異なし | select char_length(binary('tencent')); | |
chr | Aと同等のバイナリ文字を返す | 差異なし | select chr(65); | |
concat | 引数として渡された文字列またはバイトを順番に連結して生成された文字列またはバイトを返す | 差異なし | select concat('Spark', 'SQL'); | |
context_ngrams | コンテキストNグラムが与えられた場合、トークン化された文のセットから上位k個のコンテキストNグラムを返します | 差異なし | - | |
concat_ws | sepで区切られた文字列を返す | 差異なし | select concat_ws(' ', 'tencent', 'dlc'); | |
decode | 提供された文字セット(「US-ASCII」、「ISO-8859-1」、「UTF-8」、「UTF-16BE」、「UTF-16LE」、「UTF-16」のいずれか)を使用して、最初の引数を文字列にデコードします。いずれかの引数が空の場合、結果も空になります。 | 差異なし | select decode(encode('abc', 'utf-8'), 'utf-8'); | |
elt | インデックス番号の文字列を返します。例えば、elt(2,'hello','world')は'world'を返します。Nが1未満または引数の数を超える場合、NULLを返します。 | 差異なし | select elt(1, 'scala', 'java'); | |
encode | 提供された文字セット(「US-ASCII」、「ISO-8859-1」、「UTF-8」、「UTF-16BE」、「UTF-16LE」、「UTF-16」のいずれか)を使用して、最初の引数をバイナリにエンコードします。いずれかの引数がNullの場合、結果もNullになります | 差異なし | select encode('abc', 'utf-8'); | |
field | field(val T,val1 T,val2 T,val3 T,...) この関数は、パラメータリストval1,val2,val3,...内のvalのインデックス位置を返し、見つからない場合は0を返します。例えば、field('world','say','hello','world')は3を返します。 この関数はすべての基本データ型をサポートし、パラメータはstr.equals(x)を使用して比較されます。 valがNULLの場合、戻り値は0です。 | field | DLC関数では、prestoエンジンのみがサポートされています | select field('world', 'say', 'hello', 'world'); |
find_in_set | カンマ区切りのリスト atr_array 内で指定された文字列 str のインデックス(1から開始)を返します。文字列が見つからない場合、または str にカンマが含まれている場合は0を返します。 | 差異なし | select find_in_set('ab','abc,b,ab,c,def'); | |
format_number | 入力されたパラメータを「#,###,###.##」形式にフォーマットし、D 小数位で四捨五入して、結果を文字列として返します。 | 差異なし | select format_number(12332.123456, 4); | |
get_json_object | jsonオブジェクトを抽出 | get_json_object | 差異なし | select get_json_object('{"a":"b"}', '$.a'); |
in_file | in_file(string str, string filename) ファイルfilenameにおいて文字列strが行全体として出現する場合、trueを返します。 | 非対応 | - | - |
instr | str において substr が最初に出現するインデックス(1から数える)を返します | 差異なし | select instr('SparkSQL', 'SQL'); | |
length | 文字列の長さを返します | 差異なし | select length('Spark SQL '); | |
locate | pos以降のstr内でsubstrが最初に出現する位置を返します。 | 差異なし | select locate('bar', 'foobarbar'); | |
lower | Bのすべての文字を小文字に変換して生成された文字列を返します | 差異なし | select lower('TENCENT'); | |
lpad | lpad(string str, int len, string pad) 文字列 str の左側を文字 pad で埋めて、長さが len に達するようにします。str の長さが len より大きい場合、戻り値は len 文字に切り捨てられます。埋め文字 pad が空の場合、戻り値は null になります。 | DLC sparksql エンジンでは、pad はオプションパラメータであり、pad のデフォルトはスペースです。 | select lpad('hi', 5, '??'); | |
ltrim | 入力文字列の先頭(左側)から空白をトリミングして得られた文字列を返します | 差異なし | select ltrim(' SparkSQL '); | |
ngrams | マーク付き文の最初のk個のN-gramを返します。 | 差異なし | - | |
octet_length | 文字列データのバイト長またはバイナリデータのバイト数を返します。 | 差異なし | select octet_length('Spark SQL'); | |
parse_url | urlからパスを抽出する | 差異なし | select parse_url('http://spark.apache.org/path?query=1', 'HOST'); | |
printf | printf スタイルのフォーマット文字列中のフォーマット文字列を返します | 差異なし | select printf("Hello World %d %s", 100, "days"); | |
quote | 引用符付き文字列を返します | 非対応 | - | - |
regexp_extract | regexp式に一致し、regexグループインデックスidxに対応するstr内の最初の文字列を抽出します | 差異なし | select regexp_extract('100-200', '(\\\\d+)-(\\\\d+)', 1); | |
regexp_replace | regexp_replace(string INITIAL_STRING, string PATTERN, string REPLACEMENT) INITIAL_STRING内でPATTERNで定義されたJava正規表現構文に一致するすべての部分文字列をREPLACEMENTインスタンスに置き換えた結果の文字列を返します。 | DLC sparksql エンジンには、4番目のオプションパラメータ「position」を追加できます。positionは正の整数リテラルで、文字列内の検索開始位置を表します。デフォルト値は1です。 | select regexp_replace('100-200', '(\\\\d+)', 'num'); | |
repeat | 指定された文字列をn回繰り返した文字列を返します | 差異なし | select repeat('123', 2); | |
replace | replace(string A, string OLD, string NEW) 文字列A内で重複しないすべてのOLDの出現箇所をNEWに置き換えた結果の文字列を返します。 | sparksql エンジンの3番目のパラメータ NEW はオプションで、デフォルトは空です | select replace('ABCabc', 'abc', 'DEF'); | |
reverse | reverse(string A) 反転した文字列を返します。 | sparksql エンジンのパラメータは配列でも可能です | select reverse('Spark SQL'); | |
rpad | rpad(string str, int len, string pad) 文字列 str の右側を文字 pad で埋めて、長さが len に達するようにします。str の長さが len より大きい場合、戻り値は len 文字に切り捨てられます。埋め文字 pad が空の場合、戻り値は null になります。 | sparksql エンジンでは、pad はオプションパラメータであり、pad のデフォルトはスペースです。 | select rpad('hi', 5, '??'); | |
rtrim | 入力文字列の末尾(右側)から空白をトリミングして得られた文字列を返します | 差異なし | select rtrim(' SparkSQL '); | |
sentences | 入力文字列 str を単語の配列に分割します | 差異なし | select sentences('Hi there! Good morning.'); | |
space | n個のスペースで構成される文字列を返します | 差異なし | select concat(space(2), '1'); | |
split | split(string str, string pat) 正規表現 pat(pat は正規表現です)を中心に文字列 str を分割します。 | DLC sparksql エンジンには、3番目のオプションパラメータ「limit」があります。limitは返される配列の長さを制限するために使用できます。 | select split('oneAtwoBthreeC', '[ABC]'); | |
str_to_map | 入力パラメータを区切り文字でキー/値ペアに分割してマップを作成します。 | 差異なし | select str_to_map('a:1,b:2,c:3', ',', ':'); | |
substr | posから始まり長さlenのstr部分文字列、またはposから始まり長さlenのバイト配列スライスを返します | 差異なし | select substr('Spark SQL', 5); | |
substring | posから始まり長さlenのstr部分文字列、またはposから始まり長さlenのバイト配列スライスを返します | 差異なし | select substring('Spark SQL', 5); | |
substring_index | delimの出現回数countに基づいて、strから部分文字列を返します。countが正数の場合、最後の区切り文字の左側のすべてを返します(左から数えて)。countが負数の場合、最後の区切り文字の右側のすべてを返します(右から数えて)。この関数はdelimのマッチングにおいて大文字と小文字を区別します。 | 差異なし | select substring_index('cloud.tencent.com', '.', 2); | |
translate | from文字列の文字をto文字列の対応する文字に置き換えることで、input文字列を変換します | 差異なし | select translate('AaBbCc', 'abc', '123'); | |
trim | 入力文字列の両端から空白をトリミングして得られた文字列を返します | DLC SparkSQLエンジンは、より複雑なトリミング式をサポートしています | select trim(' SparkSQL '); | |
unbase64 | strをbase64文字列からバイナリに変換する | 差異なし | select unbase64('U3BhcmsgU1FM'); | |
upper | strのすべての文字を大文字に変更して返します | 差異なし | select upper('tencent'); | |
ucase | strのすべての文字を大文字に変更して返します | 差異なし | select ucase('SparkSQL'); | |
initcap | 各単語の最初の文字を大文字に変更し、他のすべての文字は小文字にします。 | 差異なし | select initcap('sPark sql'); | |
levenshtein(string A, string B) | 2つの与えられた文字列間のレーベンシュタイン距離を返します | 差異なし | select levenshtein('kitten', 'sitting'); | |
soundex(string A) | 文字列のSoundexエンコーディングを返す | 差異なし | select soundex('Miller'); |
Hive3.1関数名 | 関数機能説明 | DLC対応関数名 | 差異表現 | 使用参考 |
mask | mask(string str[, string upper[, string lower[, string number]]]) str のマスクバージョンを返します。 | 非対応 | - | - |
mask_first_n | mask_first_n(string str[, int n]) str のマスクバージョンを返します。最初の n 個の値はマスクに置き換えられます。 | 非対応 | - | - |
mask_last_n | mask_last_n(string str[, int n]) str のマスクバージョンを返します。最後の n 個の値はマスクに置き換えられます。 | 非対応 | - | - |
mask_show_first_n | mask_show_first_n(string str[, int n]) str のマスクバージョンを返します。最初の n 個の文字はマスクに置き換えられずに表示されます。 | 非対応 | - | - |
mask_show_last_n | mask_show_last_n(string str[, int n]) str のマスクバージョンを返します。最初の n 個の文字はマスクに置き換えられずに表示されます。 | 非対応 | - | - |
mask_hash | mask_hash(string|char|varchar str) str に基づいてハッシュ値を返します。 | 非対応 | - | - |
Hive3.1関数名 | 関数機能説明 | DLC対応関数名 | 差異表現 | 使用参考 |
java_method | 反映、映す、反射 | 非対応 | - | - |
reflect | リフレクションを使用してパラメータシグネチャをマッチングさせ、Javaメソッドを呼び出します | 非対応 | - | - |
hash | パラメータのハッシュ値を返す | 異なるエンジンでは計算方法が異なるため、異なる結果が得られる可能性があります | select hash('tencent', array(123), 2); | |
current_user | 現在のユーザーを返す | 差異なし | select current_user(); | |
logged_in_user | セッション状態から現在のユーザー名を返します。これはHiveに接続する際に提供されたユーザー名です。 | 非対応 | - | - |
current_database | 現在のデータベース名を返します | 非対応 | - | - |
md5 | MD5 128ビットチェックサムを16進数文字列形式で返します | 差異なし | select md5('tencent'); | |
sha1 | 入力パラメータのsha1ハッシュ値を16進数文字列形式で返します | 差異なし | select sha1('tencent'); | |
sha | 入力パラメータのsha1ハッシュ値を16進数文字列形式で返します | 差異なし | select sha('tencent'); | |
crc32 | CRC32アルゴリズムを使用して式の巡回冗長検査値を計算します | 差異なし | select crc32('tencent'); | |
sha2 | expr の SHA-2 ファミリのチェックサムを16進数文字列形式で返します。SHA-224、SHA-256、SHA-384、SHA-512 をサポートしています。ビット長0は256と同等です。 | 差異なし | select sha2('tencent', 256); | |
aes_encrypt | aes_encrypt(input string/binary, key string/binary) aes暗号化を使用します | DLCのsparksqlエンジンはこの関数をサポートしていません | select hex(aes_encrypt('tencent', '0000111122223333')); | |
aes_decrypt | aes_decrypt(input binary, key string/binary) AES復号化を使用します | DLCのsparksqlエンジンはこの関数をサポートしていません | select aes_decrypt(unhex('B99B99CE3359A736DBB9811ED8815C01'), '0000111122223333'); | |
version | version() エンジンバージョンを返す | version | sparksqlはsparkバージョンを返し、prestoはhiveバージョンを返します | select version(); |
surrogate_key | surrogate_key([write_id_bits, task_id_bits]) テーブルにデータを挿入する際に、自動的に数値IDを生成します。ACIDまたは挿入専用テーブルのデフォルト値としてのみ使用できます。 | 非対応 | - | - |
Was this page helpful?
You can also Contact sales or Submit a Ticket for help.
Help us improve! Rate your documentation experience in 5 mins.
Feedback