tencent cloud

Data Lake Compute

製品概要
プロダクト概要
製品の強み
適用シーン
購入ガイド
課金概要
返金説明
支払い期限切れ説明
設定調整費用の説明
クイックスタート
新規ユーザー開通フルプロセス
DLC データインポートガイド
DLCデータ分析の1分間入門
DLC権限管理の1分間入門
パーティションテーブル1分間入門
データ最適化をオンにする
クロスソース分析 EMR Hive データ
標準エンジン構成ガイド
操作ガイド
コンソール操作紹介
開発ガイド
実行環境
SparkJar ジョブ開発ガイド
PySparkジョブ開発ガイド
「クエリパフォーマンス最適化ガイド」
UDF 関数開発ガイド
システム制約
クライアントアクセス
JDBCアクセス
TDLC コマンドラインツールにアクセス
サードパーティソフトウェア連携
Python にアクセス
実践チュートリアル
DLC を Power BI に接続
テーブル作成の実践
Apache Airflowを使用してDLCエンジンのタスクをスケジュールして送信する
StarRocks は DLC 内部ストレージを直接クエリします
Spark の計算コスト最適化プラクティス
DATA + AI
ロールSSOを使用してDLCにアクセスする
SQL構文
SuperSQL構文
標準 Spark 構文概要
標準 Presto 構文の概要
予約語
API Documentation
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
一般クラスリファレンス
エラーコード
クォータと制限
サードパーティソフトウェアでDLCに接続する操作ガイド
よくあるご質問
権限に関するよくあるご質問
エンジン類のよくある質問
機能に関するよくあるご質問
Sparkジョブクラスに関するよくある質問
DLC ポリシー
プライバシーポリシー
データプライバシーとセキュリティ契約
お問い合わせ

Hive 関数対応表

PDF
Focus Mode
Font Size
Last updated: 2025-12-25 12:00:07
DLCはHive関数を完全にサポートしており、HiveからデータレイクコンピューティングDLCに簡単にアップグレードし、より強力なデータレイク機能を利用できます。
DLC統一関数とHive関数には一部細かい違いがあり、具体的な関数対応表は以下の通りです。
Hive関数の詳細については、Apache Hive公式サイトLanguageManual UDFを参照してください。

数学関数

Hive数学関数については、Apache Hive公式サイトMathematicalFunctionsを参照してください。
DLC数学関数については、Tencent Cloud公式ドキュメント数学関数を参照してください。
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);

集合関数

DLC集合関数とHive集合関数は差異なし。
Hive集合関数については、Apache Hive公式サイトCollectionFunctionsを参照してください。
DLC集合関数については、Tencent Cloud公式ドキュメント集合関数を参照してください。
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
指定されたフォーマットテンプレート fmt( Datetime Patterns for Formatting and Parsing を参照)に従って、入力された日付をフォーマットします。
いずれかの入力パラメータが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または挿入専用テーブルのデフォルト値としてのみ使用できます。
非対応
-
-


Help and Support

Was this page helpful?

Help us improve! Rate your documentation experience in 5 mins.

Feedback