注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Spark SQL リファレンス

このセクションでは、Spark SQL データ変換と他のタイプの SQL クエリの間のいくつかの主要な違いを説明します。また、利用可能な Spark SQL 関数のリストも含まれています。

ヒント

リソースを探している際には、Spark SQL が実際には HiveQL 方言に基づいていることを覚えておいてください。HiveQL に関する詳細情報はオンラインで見つけることができます。

はじめに

基本的なクエリ形式

各 SQL データ変換クエリはテーブルを作成する必要があります。SQL クエリの一般的な形式は次のようになります:

Copied!
1 2 -- テーブルを作成します。 _____ は新たに作成するテーブルの名前です。 SELECT _____ は新しいテーブルにどのデータを挿入するかを選択します。 CREATE TABLE _____ AS SELECT _____

ステートメントの最後にセミコロンを含めないでください。 セミコロンを含めるとエラーが発生します。

コメント構文

SQL コードにコメントを含める方法は以下のとおりです:

Copied!
1 2 3 4 5 -- この記法を使用してコメントを作成できます -- この構文を使用してコメントを作成します /* また、この記法を使用しても コメントを作成できます */

データセットの参照

データセットを参照するには、バックティックで囲まれたデータセットのパスを指定してください:

Copied!
1 2 3 4 5 6 7 8 9 10 -- テーブルを作成し、別のデータセットからデータをコピーします CREATE TABLE `/path/to/target/dataset` AS SELECT * FROM `/path/to/source/dataset` -- 代替の構文 -- テーブルを作成し、カッコ内の SELECT ステートメントで別のデータセットからデータをコピーします CREATE TABLE `/path/to/target/dataset` AS ( SELECT * FROM `/path/to/source/dataset` )

データセットの名前は大文字と小文字を区別します。

行の参照

データセットから特定の行を参照するには、行名を提供してください:

Copied!
1 2 -- `/path/to/source/dataset`から`Name`を選択します SELECT Name FROM `/path/to/source/dataset`

列名は大文字と小文字を区別します。

派生行とエイリアス

派生行は、ユーザーのデータセット行に関数を呼び出す結果です。派生行には必ずエイリアスを定義する必要があります:

Copied!
1 2 -- 以下のコードは、指定されたデータセットのパスからVal列の合計値を算出し、Totalとして出力します。 SELECT Sum(Val) AS Total FROM `/path/to/source/dataset`

次のクエリはエラーになります:

Copied!
1 2 -- データセットからVal列の合計値を選択 SELECT Sum(Val) FROM `/path/to/source/dataset`

エイリアス名は大文字と小文字を区別します。

SQL節における派生行

WHERE 及び GROUP BY のSQL節内ではエイリアスを使用することはできません。したがって、WHERE 又は GROUP BY 節内では実際の関数とデータセットの行(行)を参照する必要があります。

Copied!
1 2 3 4 5 6 7 8 9 -- 名前を小文字に変換したものをLowercaseNameとして選択します -- `/path/to/source/dataset`からデータを取得しますが、その際に名前が"sara"のものだけを選択します SELECT Lower(Name) AS LowercaseName FROM `/path/to/source/dataset` WHERE Lower(Name) = "sara" -- 名前を小文字に変換したものをLowercaseNameとして、Valの合計をTotalとして選択します -- `/path/to/source/dataset`からデータを取得しますが、その際に小文字に変換した名前でグループ化します SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name)

ユーザーは以下の SQL 句の中でエイリアスを使用できます:ORDER BY および HAVING。したがって、次のクエリのいずれでも機能します:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 -- 以下の2つのクエリはどちらも有効です -- 名前を小文字に変換し、合計値を計算 SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) ORDER BY Total -- 名前を小文字に変換し、合計値を計算 SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) ORDER BY Sum(Val) -- 以下の2つのクエリはどちらも有効です -- 名前を小文字に変換し、合計値が100より大きいものを抽出 SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) HAVING Total > 100 -- 名前を小文字に変換し、合計値が100より大きいものを抽出 SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) HAVING Sum(Val) > 100

型変換

式を他の型に変換するために、キャストすることができます。キャストの構文は以下の通りです:

Copied!
1 CAST(expr AS <TYPE>) -- exprを<TYPE>型にキャスト(変換)します

expr はキャストしたい式を表し、<TYPE> は式を変換したい型を表します。もし CAST(expr` `AS` `<TYPE>) が成功しない場合、nullを返します。<TYPE> で使用可能な値は次のとおりです:

  • boolean
  • tinyint
  • smallint
  • int
  • bigint
  • float
  • double
  • decimal
  • date
  • timestamp
  • binary
  • string

日付のフォーマット

日付の値を再フォーマットしたい場合や、文字列を日付形式に変換したい場合があるかもしれません。date は yyyy-MM-dd の形式を持ち、時間成分はありません。CAST 関数と利用可能な datetime functions を組み合わせて、文字列を日付に変換することができます。以下にいくつかの簡単な例を示します:

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 -- 'yyyy-MM-dd'形式の文字列を日付に変換する CAST('2016-07-30' AS DATE) -- 'yyyy-MM-dd'形式の文字列をタイムスタンプに変換する(タイムスタンプは提供された日付の真夜中に基づく) CAST('2016-07-30' AS TIMESTAMP) -- 'ddMMyyyy'形式の日付文字列を日付に変換する TO_DATE(CAST(UNIX_TIMESTAMP('07302016', 'MMddyyyy') AS TIMESTAMP)) -- 'ddMMyyyy HH:mm:ss'形式のタイムスタンプ文字列を日付に変換する CAST('2016-07-30 11:29:27' AS DATE) -- ISO 8601タイムスタンプから日付のみを抽出する TO_DATE('2016-07-30T11:29:27.000+00:00') -- 'yyyy-MM-dd HH:mm:ss'形式のタイムスタンプから日付のみを抽出する TO_DATE('2016-07-30 11:29:27')

文字列が日付/タイムスタンプとしてフォーマットされていない場合、文字列を日付にキャストできません。したがって、CAST('20160730' AS DATE) のようなものは null を返します。

集約関数

関数説明
APPROX_COUNT_DISTINCTグループ内の異なるアイテムのおおよその数を返します。
AVGグループ内の値の平均を返します。
COLLECT_LIST重複するオブジェクトのリストを返します。
COLLECT_SET重複要素を削除したオブジェクトのセットを返します。
CORR2つの行のピアソン相関係数を返します。
COUNTグループ内のアイテム数を返します。
COVAR_POP2つの行の母集団共分散を返します。
COVAR_SAMP2つの行の標本共分散を返します。
FIRSTグループ内の最初の値を返します。
GROUPINGGROUP BYリスト内の指定された行が集約されているかどうかを示します。
KURTOSISグループ内の値の尖度を返します。
LASTグループ内の最後の値を返します。
MAXグループ内の式の最大値を返します。
MEANグループ内の値の平均を返します。
MINグループ内の式の最小値を返します。
SKEWNESSグループ内の値の歪度を返します。
STDDEVstddev_samp の別名。
STDDEV_POPグループ内の式の母集団標準偏差を返します。
STDDEV_SAMPグループ内の式の標本標準偏差を返します。
SUM式内のすべての値の合計を返します。
VARIANCEグループ内の値の無偏分散を返します。
VAR_POPグループ内の値の母集団分散を返します。
VAR_SAMPグループ内の値の無偏分散を返します。

APPROX_COUNT_DISTINCT

説明: 集約関数:グループ内の異なるアイテムのおおよその数を返します。最大推定誤差はデフォルトで0.05に設定されていますが、rsd が提供されている場合はその値が使用されます。

シグネチャ:

Copied!
1 2 3 4 -- APPROXCOUNTDISTINCT(Column e) は、大まかな重複を除いた値の数をカウントする APPROXCOUNTDISTINCT(Column e) -- APPROXCOUNTDISTINCT(Column e, double rsd) は、指定された相対標準偏差 (rsd) で重複を除いた値の数を大まかにカウントする APPROXCOUNTDISTINCT(Column e, double rsd)
AVG (列)

説明: 集約関数:グループ内の値の平均を返します。

シグネチャ:

Copied!
1 AVG(Column e) -- 列eの平均値を計算します

COLLECT_LIST

説明: 集約関数:重複を含むオブジェクトのリストを返します。

シグネチャ:

Copied!
1 COLLECT_LIST(列 e)

この関数は、特定の列 e のすべての値をリストとして収集します。これは、SQLクエリの一部として使用され、同じ行の値をグループ化するためのものです。

COLLECT_SET

説明: 集約関数: 重複要素を排除したオブジェクトのセットを返します。

シグネチャ:

Copied!
1 2 COLLECT_SET(カラム e) -- COLLECT_SETは、単一のグループで重複しない値の集合を返します。ここでは、"e"という名前のカラムの値が集められます。

CORR

説明: 集約関数:2つの行に対するピアソンの相関係数を返します。

署名:

Copied!
1 2 -- CORRは2つの列の間の相関を計算します。この関数は、column1とcolumn2のピアソンの積率相関係数を返します。 CORR(Column column1, Column column2)

COUNT

説明: 集約関数:グループ内のアイテムの数を返します。

シグネチャ:

Copied!
1 COUNT(Column e) -- カラムeのレコード数を数えます

COVAR_POP

説明: 集約関数:2つの行の母集団共分散を返します。 シグネチャ:

Copied!
1 COVAR_POP(Column column1, Column column2) -- COVAR_POP(列 column1, 列 column2)

この関数は、2つの列(column1とcolumn2)の母集団共分散を計算します。 COVAR_SAMP

説明: 集約関数:2つの行のサンプル共分散を返します。

署名:

Copied!
1 2 3 -- COVAR_SAMP(Column column1, Column column2) は、2つの列の間のサンプル共分散を計算する関数です。 -- Column1 と Column2は、共分散を計算するための列名です。 -- これはデータ分析や統計学における重要な概念で、2つの変数がどの程度一緒に変動するかを理解するために使用されます。

FIRST

説明: 集約関数: グループ内の最初の値を返します。デフォルトでは、最初に見た値を返します。ignoreNullsがtrueに設定されている場合、最初に見た非null値を返します。すべての値がnullの場合、nullを返します。

シグネチャ:

Copied!
1 2 3 4 -- FIRST(列 e) は、指定された列の最初の値を返します。 -- FIRST(列 e, boolean ignoreNulls) は、指定された列の最初の値を返し、ignoreNulls が true の場合、null 値を無視します。 FIRST(Column e) FIRST(Column e, boolean ignoreNulls)

GROUPING

説明: 集約関数:GROUP BYリストの指定された行が集約されているかどうかを示します。結果セットでは、集約されていれば1、集約されていなければ0を返します。

シグネチャ:

Copied!
1 2 -- GROUPING(列 e) GROUPING(Column e)

KURTOSIS

説明: 集約関数: グループ内の値の尖度を返します。

シグネチャ:

Copied!
1 KURTOSIS(Column e) -- KURTOSIS(Column e)は、e列の尖度(データの分布が正規分布からどれだけ尖っているかを表す統計量)を計算します

LAST

説明: 集約関数:グループ内の最後の値を返します。デフォルトでは、最後に見た値を返します。ignoreNullsがtrueに設定されている場合、最後に見た非null値を返します。すべての値がnullの場合は、nullを返します。

シグネチャ:

Copied!
1 2 3 -- 日本語のコメントを追加します LAST(Column e) -- 最後の行の指定された列の値を返します LAST(Column e, boolean ignoreNulls) -- 最後の行の指定された列の値を返しますが、ignoreNullsがtrueの場合、NULL値を無視します

MAX

説明: 集約関数:グループ内の式の最大値を返します。

シグネチャ:

Copied!
1 MAX(カラム e) -- 最大値を求める

MEAN

説明: 集約関数:グループ内の値の平均を返します。

シグネチャ:

Copied!
1 MEAN(Column e) -- 平均(列 e)

MIN

説明: 集計関数: グループ内での式の最小値を返します。

シグネチャ:

Copied!
1 2 -- 最小値を取得 (カラム e) MIN(Column e)

SKEWNESS

説明: 集約関数:グループ内の値の歪度を返します。

シグネチャ:

Copied!
1 SKEWNESS(Column e) -- 列eの歪度(非対称度)を計算します

STDDEV

説明: 集約関数:stddev_samp のエイリアス。

シグネチャ:

Copied!
1 2 -- Column eの標準偏差を計算 STDDEV(Column e)

STDDEV_POP

説明: 集約関数: グループ内の式の母集団標準偏差を返します。

シグネチャ:

Copied!
1 STDDEV_POP(Column e) -- 人口標準偏差(列e)

STDDEV_SAMP

説明: 集約関数:グループ内の式の標本標準偏差を返します。

署名:

Copied!
1 STDDEV_SAMP(Column e) -- この関数は、指定した列eの標本標準偏差を計算します。

SUM

説明: 集約関数: 式内のすべての値の合計を返します。

シグネチャ:

Copied!
1 SUM(Column e) -- 列eの合計を計算します

VARIANCE

説明: 集計関数: グループ内の値の不偏分散を返します。VAR_SAMP関数のエイリアスです。

シグネチャ:

Copied!
1 2 -- 分散(カラム e) VARIANCE(Column e)

VAR_POP

説明: 集約関数:グループ内の値の母集団分散を返します。

シグネチャ:

Copied!
1 2 -- 分散(母集団)を計算する関数 VAR_POP(カラム e)

VAR_SAMP

説明: 集約関数: グループ内の値の無偏分散を返します。

シグネチャ:

Copied!
1 VAR_SAMP(Column e) -- 変数eの不偏分散を計算します

文字列関数

関数説明
ASCII文字列の行の最初の文字の数値を計算し、結果を int 行として返します。
BASE64バイナリ行の BASE64 エンコーディングを計算し、文字列行として返します。
CONCAT複数の入力文字列の行を1つの文字列の行に連結します。
DECODE指定された文字セットを使用して、バイナリから第一引数を文字列に計算します。
ENCODE指定された文字セットを使用して、文字列から第一引数をバイナリに計算します。
FORMAT_NUMBER数値列を「#,###,###.##」のような形式にフォーマットし、d小数位に丸めます。
GET_JSON_OBJECT指定された json パスに基づいて json 文字列から json オブジェクトを抽出し、抽出された json オブジェクトの json 文字列を返します。
INSTR指定された文字列の行で部分文字列の最初の出現位置を検索します。
JSON_TUPLE指定されたフィールド名に従って、json の行に対して新しい行を作成します。
LENGTH指定された文字列またはバイナリ行の長さを計算します。
LEVENSHTEIN2つの指定された文字列の行のレーベンシュタイン距離を計算します。
LOWER文字列の行を小文字に変換します。
LPAD文字列の行を pad で左パディングして、len の長さにします。
LTRIM指定された文字列の値の左端からスペースをトリムします。
REGEXP_EXTRACT指定された文字列の行から、Java の正規表現によってマッチした特定のグループを抽出します。
REGEXP_REPLACE指定された文字列の値で、regexp に一致するすべての部分文字列を rep に置き換えます。
REPEAT文字列の行を n 回繰り返し、新しい文字列の行として返します。
REVERSE文字列の行を反転させ、新しい文字列の行として返します。
RPAD文字列の行を pad で右パディングして、len の長さにします。
RTRIM指定された文字列の値の右端からスペースをトリムします。
SOUNDEX指定された式の soundex コードを返します。
SPLITstr を pattern (pattern は正規表現) を基に分割します。
SUBSTRING文字列またはバイナリタイプの行の部分文字列を返します。
SUBSTRING_INDEX区切り文字のカウント回数の前にある文字列から部分文字列を返します。
TRANSLATEsrc の任意の文字を replaceString の文字に変換します。
TRIM指定された文字列の行の両端からスペースをトリムします。
UNBASE64BASE64 エンコードされた文字列の行をデコードし、バイナリ行として返します。
UNHEXhex の逆変換。
UPPER文字列の行を大文字に変換します。

ASCII

説明: 文字列の行の最初の文字の数値を計算し、結果を int 行として返します。

シグネチャ:

Copied!
1 2 -- ASCII(列 e) ASCII(Column e)
BASE64

説明: バイナリ行を BASE64 エンコードし、文字列行として返します。

シグネチャ:

Copied!
1 BASE64(カラム e) -- カラムeのデータをBASE64形式に変換します

CONCAT

説明: 複数の入力文字列行を一つの文字列行に連結します。

シグネチャ:

Copied!
1 -- CONCAT(Column... exprs) は、指定した列や式の値を連結して返す関数です。

DECODE

説明: 提供された charset を使用して、第一引数をバイナリから文字列に変換します。charset は次のいずれかです:

  • ‘US-ASCII’
  • ‘ISO-8859-1’
  • ‘UTF-8’
  • ‘UTF-16BE’
  • ‘UTF-16LE’
  • ‘UTF-16’

いずれかの引数が null の場合、結果も null になります。

シグネチャ:

Copied!
1 DECODE(カラム値, 文字列文字セット)

このコードは、指定した文字セットを使用してカラム値をデコードします。

ENCODE

説明: 指定された charset を使用して、第一引数を文字列からバイナリに変換します。以下のいずれかを指定できます:

  • ‘US-ASCII’
  • ‘ISO-8859-1’
  • ‘UTF-8’
  • ‘UTF-16BE’
  • ‘UTF-16LE’
  • ‘UTF-16’

いずれかの引数が null の場合、結果も null になります。

シグネチャ:

Copied!
1 ENCODE(列の値, 文字セット)

この関数は、指定した文字セットを使用して列の値をエンコードします。これは、データベースと異なる文字セットを使用してデータを保存または取得する必要がある場合に役立ちます。たとえば、異なる国や地域で使用される特定の文字を正しく表示するために使用されます。

FORMAT_NUMBER

説明: 数値の行 x を、HALF_EVEN の丸めモード(ガウス丸めまたは銀行家の丸めとも呼ばれる)で d 小数位に丸めた ‘#,###,###.##’ の形式にフォーマットします。結果は文字列の行として返されます。d が 0 の場合、結果には小数点や小数部分はありません。d が 0 未満の場合、結果は null になります。

シグネチャ:

Copied!
1 FORMAT_NUMBER(Column x, int d)

FORMAT_NUMBERは数値を指定されたフォーマットに変換します。Column xはフォーマットしたい数値列を指定し、int dは小数点以下の桁数を指定します。 GET_JSON_OBJECT

説明: 指定された json path に基づいて、json 文字列から json オブジェクトを抽出し、抽出された json オブジェクトの json 文字列を返します。入力された json 文字列が無効な場合は null を返します。

シグネチャ:

Copied!
1 GET_JSON_OBJECT(カラム e, 文字列 パス)

コメント:

この関数は、JSONオブジェクトから特定の値を取得するために使用されます。

  • カラム eはJSONオブジェクトが格納されているカラムを指定します。
  • 文字列 パスは取得したい値のJSONパスを指定します。

INSTR

説明: 指定された文字列列内で、substringの最初の出現位置を見つけます。引数のいずれかがnullの場合はnullを返し、str内にsubstringが見つからない場合は0を返します。 結果として得られる位置は、1から始まるインデックスで、0から始まるものではありません。

シグネチャ:

Copied!
1 INSTR(カラム str, 文字列 substring)

このコードはSQLのINSTR関数を使用しています。この関数は、strという名前のカラム内でsubstringという文字列が初めて出現する位置を返します。位置は1から始まります。もし、substringstrに含まれていない場合、この関数は0を返します。

JSON_TUPLE

説明: 与えられたフィールド名に従って、json 行に新しい行を作成します。

シグネチャ:

Copied!
1 2 3 4 -- JSON_TUPLE(Column json, scala.collection.Seq<String> fields) の関数 -- JSON_TUPLE(Column json, String... fields) の関数 JSON_TUPLE(Column json, scala.collection.Seq<String> fields) JSON_TUPLE(Column json, String... fields)

LENGTH

説明: 指定された文字列またはバイナリ列の長さを計算します。

シグネチャ:

Copied!
1 2 -- LENGTH(カラム e) を計算する LENGTH(Column e)
### ``LEVENSHTEIN``

**説明:**
与えられた 2 つの文字列行間のレーベンシュタイン距離を計算します。

**シグネチャ:**
Copied!
1 LEVENSHTEIN(カラム l, カラム r) -- LEVENSHTEIN関数は、2つの文字列間のLevenshtein距離(最小編集距離)を計算します。

LOWER

説明: 文字列の行を小文字に変換します。

シグネチャ:

Copied!
1 2 -- 日本語のコメント: 小文字に変換する LOWER(Column e)

LPAD

説明: 文字列の行を pad で左側からパッドし、len の長さにします。

シグネチャ:

Copied!
1 2 -- LPAD(カラム str, 整数型の len, 文字列型の pad) LPAD(カラム str, int len, 文字列 pad)

LTRIM

説明: 指定された文字列値の左端からスペースをトリムします。

シグネチャ:

Copied!
1 2 -- LTRIM(列 e):列 e の左側の空白を削除します LTRIM(Column e)

REGEXP_EXTRACT

説明: 指定した文字列行から、Javaの正規表現(exp)によってマッチした特定のグループ(groupIdx)を抽出します。正規表現がマッチしなかった場合、または指定したグループがマッチしなかった場合、空の文字列が返されます。

シグネチャ:

Copied!
1 2 -- 次の関数は、正規表現(exp)を使用して特定の列(e)からデータを抽出し、指定したグループ(groupIdx)を返します REGEXP_EXTRACT(列 e, 文字列 exp, 整数 groupIdx)

REGEXP_REPLACE

説明: 指定された文字列値のJava正規表現 pattern に一致するすべての部分文字列を replacement で置き換えます。

シグネチャ:

Copied!
1 2 -- パターンに一致する文字列を指定した文字列に置き換える。 REGEXP_REPLACE(カラム e, 文字列パターン, 文字列置換)

REPEAT

説明: 文字列の行を n 回繰り返し、新しい文字列の行として返します。

署名:

Copied!
1 REPEAT(カラム str, int n) -- この関数は、指定された文字列(str)を指定された回数(n)だけ繰り返します。
REVERSE

説明: 文字列の行を逆順にして、新しい文字列の行として返します。

シグネチャ:

Copied!
1 2 -- 文字列を逆順にする関数 REVERSE(カラム str)
### ``RPAD``

**説明:**
文字列行``column``を``pad``で右詰めし、``len``の長さにします。

**シグネチャ:**
Copied!
1 2 -- RPAD(列 str, 整数型 len, 文字列型 pad) RPAD(Column str, int len, String pad)

RTRIM

説明: 指定された文字列値の右端のスペースをトリムします。

シグネチャ:

Copied!
1 2 -- 右側の空白を削除する RTRIM(Column e)
SOUNDEX

説明: 指定された式の soundex コードを返します。

シグネチャ:

Copied!
1 2 -- SOUNDEXは、英語の単語の発音を表現するアルゴリズムです。この関数は、指定されたカラムの値に対してSOUNDEXコードを返します。 SOUNDEX(カラム e)

SPLIT

説明: pattern が正規表現である場合、strpattern で分割します。

シグネチャ:

Copied!
1 SPLIT(カラム str, 文字列 パターン)

このコードは、指定したパターンに基づいて文字列を分割するSQL関数です。 strは分割する文字列を含む列を指し、パターンはその分割パターンを指します。

SUBSTRING

説明: strが文字列型の場合、posから始まるlenの長さの部分文字列を返します。strがバイナリ型の場合、バイト単位でposから始まり、lenの長さのバイト配列のスライスを返します。

シグネチャ:

Copied!
1 2 -- SUBSTRING(列 str, 整数 pos, 整数 len) -- この関数は、指定した列(str)の特定の位置(pos)から特定の長さ(len)の文字列を抽出します。

SUBSTRING_INDEX

説明: デリミタ delimcount 回目の出現前の文字列 str からの部分文字列を返します。delim を検索する際に大文字と小文字を区別して一致します。count が正の場合、最後のデリミタ(左から数える)の左側すべてが返されます。count が負の場合、最後のデリミタ(右から数える)の右側すべてが返されます。

シグネチャ:

Copied!
1 2 3 4 5 -- SUBSTRING_INDEX(列 str, 文字列 delim, 整数 count) -- この関数は、最初のパラメータで指定された列または文字列から、 -- 第二のパラメータで指定された区切り文字を使用して部分文字列を抽出します。 -- そして、第三のパラメータで指定された数の部分文字列を返します。 -- countが正の場合、左から数えます。countが負の場合、右から数えます。

TRANSLATE

説明: srcの任意の文字をreplaceStringの文字に変換します。replaceStringの文字はmatchingStringの文字に対応します。文字列の任意の文字がmatchingStringの文字と一致するときに変換が行われます。

シグネチャ:

Copied!
1 2 -- TRANSLATE関数は、src列内の特定の文字列(matchingString)を別の文字列(replaceString)に置換します。 TRANSLATE(列 src, 文字列 matchingString, 文字列 replaceString)

TRIM

説明: 指定した文字列行の両端から空白を削除します。

シグネチャ:

Copied!
1 TRIM(列 e) -- 列 eから不要な空白を取り除く

UNBASE64

説明: BASE64でエンコードされた文字列行をデコードし、バイナリー行として返します。

シグネチャ:

Copied!
1 UNBASE64(カラム e) -- Base64エンコードされた "カラム e" のデコードを行う
UNHEX(文字列) -> バイナリ

説明: hex の逆。各ペアの文字を 16 進数として解釈し、その数値のバイト表現に変換します。

シグネチャ:

Copied!
1 2 -- UNHEX(カラム column) UNHEX(Column column)
UPPER

説明: 文字列の行を大文字に変換します。

シグネチャ:

Copied!
1 UPPER(Column e) -- UPPER関数を使用して、"e"列のすべての文字を大文字に変換します。

日付時間関数

関数説明
ADD_MONTHSstartDate から numMonths 後の日付を返します。
DATEDIFF開始から終了までの日数を返します。
DATE_ADDstart から days 日後の日付を返します。
DATE_FORMAT日付 / タイムスタンプ / 文字列を、日付形式で指定された形式の文字列の値に変換します。
DATE_SUBstart から days 日前の日付を返します。
DAYOFMONTH指定された日付 / タイムスタンプ / 文字列から月の日を整数として抽出します。
DAYOFYEAR指定された日付 / タイムスタンプ / 文字列から年の日を整数として抽出します。
FROM_UNIXTIMEunix エポックからの秒数を、現在のシステムタイムゾーンでその瞬間のタイムスタンプを表す文字列に変換します。与えられた形式で表示されます。
FROM_UTC_TIMESTAMP与えられたタイムスタンプを UTC と仮定し、指定したタイムゾーンに変換します。
HOUR指定された日付 / タイムスタンプ / 文字列から時間を整数として抽出します。
LAST_DAY日付行が与えられた場合、その日付が属する月の最終日を返します。
MINUTE指定された日付 / タイムスタンプ / 文字列から分を整数として抽出します。
MONTH指定された日付 / タイムスタンプ / 文字列から月を整数として抽出します。
MONTHS_BETWEEN日付 date1 と date2 の間の月数を返します。
NEXT_DAY日付行が与えられた場合、その日付行の値より後で指定した曜日にある最初の日付を返します。
QUARTER指定された日付 / タイムスタンプ / 文字列から四半期を整数として抽出します。
SECOND指定された日付 / タイムスタンプ / 文字列から秒を整数として抽出します。
TO_DATE行を日付タイプに変換します。
TO_UTC_TIMESTAMP与えられたタイムスタンプを指定したタイムゾーンと仮定し、UTC に変換します。
TRUNCフォーマットで指定された単位に日付を切り捨てて返します。
UNIX_TIMESTAMP時刻文字列をフォーマット yyyy-MM-dd HH:mm から Unix タイムスタンプ(秒)に変換します。デフォルトのタイムゾーンとデフォルトのロケールを使用します。
WEEKOFYEAR指定された日付 / タイムスタンプ / 文字列から週番号を整数として抽出します。
WINDOWタイムスタンプを指定する行を与えると、タンブリングまたはスライドタイムウィンドウを生成します。
YEAR指定された日付 / タイムスタンプ / 文字列から年を整数として抽出します。

ADD_MONTHS

説明: startDate に指定された日付 / タイムスタンプ / 文字列から numMonths ヶ月後の日付を返します。もし startDate が文字列の場合、その形式は ‘yyyy-MM-dd’ または ‘yyyy-MM-dd HH:mm’ でなければなりません。

もし startDate に時間成分がある場合、それは無視されます。結果の月は startDate の日成分と同じです。もし startDate が月の最終日である場合、または結果の月が startDate の日成分よりも日数が少ない場合、結果の月の最終日が返されます。

署名:

Copied!
1 ADD_MONTHS(Column startDate, int numMonths) -- 指定した月数だけ開始日を先に進める関数。startDateは開始日、numMonthsは進める月数を示す。

DATEDIFF

説明: start から end までの日数を返します。

シグネチャ:

Copied!
1 2 -- DATEDIFF(終了日カラム, 開始日カラム) DATEDIFF(Column end, Column start)

DATE_ADD

説明: start の日付から days 日後の日付を返します。

シグネチャ:

Copied!
1 DATE_ADD(開始列, int 日数) -- 開始列の日付に日数を加える
DATE_FORMAT(dateExpr, format)

説明: dateExpr を指定された日付 format の文字列形式に変換します。dateExpr が文字列の場合、'yyyy-MM-dd'または'yyyy-MM-dd HH:mm'の形式である必要があります。

パターン文字列 format には、SimpleDateFormat のパターン文字が使用できます。詳細については、Java SimpleDateFormat ドキュメントを参照してください。

シグネチャ:

Copied!
1 DATE_FORMAT(カラム dateExpr, 文字列 format)

DATE_SUB

説明: startからdays日前の日付を返します。

シグネチャ:

Copied!
1 DATE_SUB(開始列, int 日数) -- 指定した日数分、開始列の日付を過去に戻す関数
### ``DAYOFMONTH``

**説明:**
与えられた日付/タイムスタンプ/文字列から、月の日にちを整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm:ss' の形式である必要があります。

**シグネチャ:**
Copied!
1 DAYOFMONTH(Column e) -- 日付が含まれる列eから、月の日を取得する

DAYOFYEAR

説明: 指定された日付/タイムスタンプ/文字列から年の日を整数として抽出します。 文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式でなければなりません。

シグネチャ:

Copied!
1 DAYOFYEAR(Column e) -- この関数は、指定された日付(Column e)がその年の何日目であるかを返します。

FROM_UNIXTIME

説明: Unix エポック(1970-01-01 00:00:00 UTC)からの秒数を、現在のシステムタイムゾーンでその瞬間のタイムスタンプを表す文字列に変換します。 パターン文字列 f が提供されていない場合、結果として得られる文字列のデフォルトフォーマットは yyyy-MM-dd HH:mm です。結果として得られる文字列のフォーマットを変更するには、パターン文字列 f を提供します。パターン文字列として SimpleDateFormat のパターン文字を使用することができます。詳細については、Java SimpleDateFormat ドキュメンテーションを参照してください。

シグネチャ:

Copied!
1 2 3 4 -- UNIXタイムスタンプ(ut列)を日付/時間形式に変換します FROM_UNIXTIME(Column ut) -- UNIXタイムスタンプ(ut列)を指定された形式(f文字列)の日付/時間に変換します FROM_UNIXTIME(Column ut, String f)
FROM_UTC_TIMESTAMP(タイムスタンプ, tz)

説明: 与えられたタイムスタンプを UTC として扱い、tz で指定されたタイムゾーンに変換します。 UTC の特定の時刻に対応するタイムスタンプが与えられた場合、tz で指定されたタイムゾーンの同じ時刻に対応する別のタイムスタンプを返します。

シグネチャ:

Copied!
1 2 -- FROM_UTC_TIMESTAMP(Column ts, String tz) 関数は、UTCのタイムスタンプを指定したタイムゾーンに変換します。 FROM_UTC_TIMESTAMP(Column ts, String tz)

HOUR

説明: 指定された日付/タイムスタンプ/文字列から時間を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

Copied!
1 HOUR(カラム e) -- カラムeの時間を取得します。
LAST_DAY(行)

説明: 日付の行が指定された場合、その日付が属する月の最終日を返します。

シグネチャ:

Copied!
1 2 -- 日本語のコメント: 指定された列 e の最後の日を返します LAST_DAY(列 e)
MINUTE (date: DATE_OR_TIMESTAMP_OR_STRING) -> INT

説明: 指定された日付/タイムスタンプ/文字列から、分を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

MINUTE (date: DATE_OR_TIMESTAMP_OR_STRING) -> INT
Copied!
1 2 -- MINUTE(列 e) MINUTE(Column e)

MONTH

説明: 指定された日付/タイムスタンプ/文字列から月を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

Copied!
1 MONTH(Column e) -- Column e の月を取得します

MONTHS_BETWEEN

説明: date1date2 の間の月数を返します。 もし date1date2 よりも後の場合、結果は正数となります。もし date1date2 よりも前の場合、結果は負数となります。もし二つの日付が同じ月の日または両方が月の最終日である場合、結果は整数となります。それ以外の場合、結果は 8 桁の小数点以下まで四捨五入されます。

シグネチャ:

Copied!
1 MONTHS_BETWEEN(カラム date1, カラム date2) -- この関数は、date1とdate2の間の月数を計算します。

NEXT_DAY

説明: date 行が指定された場合、指定した dayOfWeek で最初の日付を返します。その日付は、date 行の値よりも後の日付です。 dayOfWeek パラメーターは大文字と小文字を区別せず、以下のいずれかになります:

  • ‘Mon’
  • ‘Tue’
  • ‘Wed’
  • ‘Thu’
  • ‘Fri’
  • ‘Sat’
  • ‘Sun’

シグネチャ:

Copied!
1 NEXT_DAY(日付列, 曜日文字列) -- 指定した日付列の次の曜日文字列に該当する日付を返す

QUARTER

説明: 指定された日付/タイムスタンプ/文字列から四半期を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式でなければなりません。結果として得られる四半期は 1 から 4 の範囲になります。

シグネチャ:

Copied!
1 2 -- 四半期を返す(Column eに対して) QUARTER(Column e)
SECOND(タイムスタンプ)

説明: 与えられた日付/タイムスタンプ/文字列から、秒を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

Copied!
1 SECOND(Column e) -- 列eから秒を取得します。

TO_DATE

説明: 行を日付型に変換します。

シグネチャ:

Copied!
1 TO_DATE(列 e) -- この関数は、列eの値を日付形式に変換します。

TO_UTC_TIMESTAMP

説明: 提供されたタイムスタンプ(ts)が提供されたタイムゾーン(tz)にあると仮定し、UTCに変換します。

シグネチャ:

Copied!
1 2 -- TO_UTC_TIMESTAMP(カラム ts, 文字列 tz) は、ローカルタイムゾーンからUTCタイムゾーンにタイムスタンプを変換する関数です。 TO_UTC_TIMESTAMP(Column ts, String tz)

TRUNC

説明: format で指定された単位に日付を切り捨てます。「format`` パラメーターは、年による切り捨ての場合は 'year'、'yyyy'、'yy'、月による切り捨ての場合は 'month'、'mon'、'mm' を指定します。

署名:

Copied!
1 TRUNC(カラム 日付, 文字列 フォーマット)

UNIX_TIMESTAMP

説明: デフォルトのタイムゾーンとデフォルトのロケールを使用して、時間文字列をUnixタイムスタンプ(秒単位)に変換します。文字列をタイムスタンプに変換できない場合はnullを返します。

パターン文字列が提供されていない場合、入力列sのデフォルト形式は yyyy-MM-dd HH:mm です。入力列が異なる形式の場合は、パターン文字列pを提供してください。パターン文字列には、SimpleDateFormatのパターン文字が使用できます。詳細については、Java SimpleDateFormatドキュメントを参照してください。

シグネチャ:

Copied!
1 2 3 4 5 -- UNIX_TIMESTAMP(Column s) は、指定されたカラムsの時間をUNIXタイムスタンプ(1970年1月1日からの秒数)に変換します。 UNIX_TIMESTAMP(Column s) -- UNIX_TIMESTAMP(Column s, String p) は、指定されたフォーマットpでカラムsの時間をUNIXタイムスタンプに変換します。 UNIX_TIMESTAMP(Column s, String p)
WEEKOFYEAR(date/timestamp/string)

説明: 指定された日付/タイムスタンプ/文字列から、週番号を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

WEEKOFYEAR(日付/タイムスタンプ/文字列)
Copied!
1 WEEKOFYEAR(Column e) -- Column eに含まれる日付の週番号を返します

WINDOW

説明: タイムスタンプを指定した行を基に、タンブリングまたはスライド時間窓を生成します。slideDuration が提供されていない場合、タンブリング時間窓を生成します。slideDuration が提供されている場合、行を1つ以上の時間窓にバケット化してスライド時間窓を生成します。

窓の開始は包含的で、窓の終了は排他的なので、12:05は窓 [12:05,12:10) に含まれますが、[12:00,12:05) には含まれません。窓はマイクロ秒単位の精度をサポートできます。月単位の窓はサポートされていません。

窓の開始は1970-01-01 00:00:00 UTCから始まります、ただしstartTime が提供されている場合は除きます。 この関数は以下のパラメーターを受け入れます:

  • timeColumn: 時間による窓分けのためのタイムスタンプを使用する行。時間行は TimestampType でなければなりません。
  • windowDuration: 窓の幅を指定する文字列です。例えば、10分、1秒。期間は一定の長さの時間であり、カレンダーによって時間が変わることはありません。
  • slideDuration: 窓のスライド間隔を指定する文字列です。例えば、1分。新しい窓は毎 slideDuration 生成されます。windowDuration 以下でなければなりません。この期間も同様に絶対であり、カレンダーによって変化しません。
  • startTime: 1970-01-01 00:00:00 UTCに対するオフセットで、窓間隔の開始を設定します。例えば、1時間ごとのタンブリング窓が時刻を15分過ぎに開始する(例:12:15-13:15、13:15-14:15…)ようにするためには、startTime を15分とします。

シグニチャ:

Copied!
1 2 3 4 5 6 7 8 -- WINDOW関数は、指定された時間のウィンドウを作成します WINDOW(カラム timeColumn, 文字列 windowDuration) -- WINDOW関数は、指定された時間のウィンドウを作成し、スライドの期間を指定します WINDOW(カラム timeColumn, 文字列 windowDuration, 文字列 slideDuration) -- WINDOW関数は、指定された時間のウィンドウを作成し、スライドの期間と開始時間を指定します WINDOW(カラム timeColumn, 文字列 windowDuration, 文字列 slideDuration, 文字列 startTime)

YEAR

説明: 指定された日付/タイムスタンプ/文字列から、年を整数として抽出します。文字列は 'yyyy-MM-dd' または 'yyyy-MM-dd HH:mm' の形式である必要があります。

シグネチャ:

Copied!
1 2 -- YEAR(Column e) 関数は、指定された日付から年を抽出します YEAR(Column e)

数学関数

関数説明
ABS絶対値を計算します。
ACOS与えられた値の逆余弦を計算します。
ASIN与えられた値の逆正弦を計算します。
ATAN与えられた値の逆正接を計算します。
ATAN2直交座標 (x, y) を極座標 (r, theta) に変換する際の角度セータを返します。
BIN与えられた long 行の二進値の文字列表現を返します。
BROUND行 e の丸められた値を返します。
CBRT与えられた値の立方根を計算します。
CEIL与えられた値の天井を計算します。
CONV文字列列中の数値を一つの基数から別の基数に変換します。
COS与えられた値の余弦を計算します。
COSH与えられた値の双曲余弦を計算します。
EXP与えられた値の指数を計算します。
EXPM1与えられた値の指数から 1 を引いた値を計算します。
FACTORIAL与えられた値の階乗を計算します。
FLOOR与えられた値の床を計算します。
HYPOT中間オーバーフローやアンダーフローなしで sqrt(a^2^ + b^2^) を計算します。
LOG与えられた値の自然対数を計算します。
LOG10与えられた値の底 10 の対数を計算します。
LOG1P与えられた値に 1 を加えた自然対数を計算します。
LOG2与えられた列の底 2 の対数を計算します。
NEGATIVE単項マイナス。
PMODdividend mod divisor の正の値を返します。
POW第一引数の値を第二引数のべき乗にした値を返します。
RINT引数に最も近い値で数学的整数に等しい double 値を返します。
ROUND列 e の値を 0 小数位に丸めた値を返します。
SHIFTLEFT与えられた値を numBits 左にシフトします。
SHIFTRIGHT与えられた値を numBits 右にシフトします。
SHIFTRIGHTUNSIGNED与えられた値を numBits 右に符号なしシフトします。
SIGNUM与えられた値の符号関数を計算します。
SIN与えられた値の正弦を計算します。
SINH与えられた値の双曲正弦を計算します。
SQRT指定された float 値の平方根を計算します。
TAN与えられた値の正接を計算します。
TANH与えられた値の双曲正接を計算します。
TODEGREESラジアンで測定された角度を、おおよその度数に相当する角度に変換します。
TORADIANS度数で測定された角度を、おおよそのラジアンに相当する角度に変換します。

ABS

説明: 絶対値を計算します。

シグネチャ:

Copied!
1 ABS(カラム e) -- 絶対値を計算する(カラム e の値から)

ACOS

説明: 与えられた値の逆余弦を計算します。返される角度は 0.0 から pi の範囲内です。

シグネチャ:

Copied!
1 ACOS(カラム e) -- カラム e の逆余弦(アークコサイン)を計算します

ASIN

説明: 与えられた値の逆正弦を計算します。返される角度は -π/2 から π/2 の範囲内です。

シグネチャ:

Copied!
1 ASIN(Column e) -- ASIN関数で、指定した列eのアークサイン(逆正弦)を計算します
ATAN(double_value) -> double

説明: 与えられた値の逆正接を計算します。

シグネチャ:

Copied!
1 ATAN(Column e) -- ATAN(列 e)

ATAN2

説明: 直交座標(x, y)から極座標(r, theta)への変換から角度 theta を返します。

シグネチャ:

Copied!
1 2 3 4 5 6 -- ATAN2(Column l, Column r) は、2つのカラムのアークタンジェントを計算します。 -- ATAN2(Column l, double r) は、カラムと実数値のアークタンジェントを計算します。 -- ATAN2(Column l, String rightName) は、カラムと指定されたカラム名のアークタンジェントを計算します。 ATAN2(Column l, Column r) ATAN2(Column l, double r) ATAN2(Column l, String rightName)

BIN

説明: 指定された長い行の二進数値の文字列表現を返します。

署名:

Copied!
1 2 -- BIN(列 e) を実行して、10進数の整数値を2進数文字列に変換します。 BIN(列 e)

BROUND

説明:e のみが提供された場合、列 e の値を HALF_EVEN ラウンドモードで 0 小数位に丸めた値を返します。これはガウス丸めまたは銀行家の丸めとも呼ばれます。

scale も提供された場合、列 e の値を scale 小数位に丸めた値を返します(scale >= 0 の場合は HALF_EVEN ラウンドモードで、scale < 0 の場合は整数部で)。

シグネチャ:

Copied!
1 2 3 4 -- BROUND(Column e) は、指定した列の値を最も近い偶数に四捨五入します。 -- BROUND(Column e, int scale) は、指定した列の値を最も近い偶数に四捨五入し、その結果を指定した小数点以下の桁数で表示します。 BROUND(Column e) BROUND(Column e, int scale)

CBRT

説明: 与えられた値の立方根を計算します。

シグネチャ:

Copied!
1 CBRT(Column e) -- Column eの立方根を計算します

CEIL

説明: 与えられた値の天井を計算します。

シグネチャ:

Copied!
1 CEIL(Column e) -- 列eを切り上げ

CONV

説明: 文字列行内の数値を、ある基数から別の基数に変換します。

シグネチャ:

Copied!
1 CONV(カラム num, int 基数から, int 基数へ)

COS

説明: 指定された値の余弦を計算します。

署名:

Copied!
1 COS(Column e) -- Column e の余弦 (cosine) を計算する

COSH

説明: 指定された値の双曲線コサインを計算します。

シグネチャ:

Copied!
1 2 -- COSH(列 e) COSH(Column e)

EXP

説明: 与えられた値の指数を計算します。

署名:

Copied!
1 2 -- EXP(列 e) は、自然対数の底 e の、指定された列の値を累乗する関数です。 EXP(Column e)

EXPM1

説明: 与えられた値の指数から1を引いた値を計算します。

シグネチャ:

Copied!
1 EXPM1(列 e) -- e列の値に対するexp(x) - 1を計算します。
FACTORIAL

説明: 与えられた値の階乗を計算します。

シグネチャ:

Copied!
1 2 -- 階乗(カラム e) FACTORIAL(Column e)
FLOOR(数値)

説明: 与えられた値の床を計算します。

シグネチャ:

Copied!
1 FLOOR(カラム e) -- eカラムの値を切り捨てる

HYPOT

説明: 中間のオーバーフローまたはアンダーフローなしで sqrt(a^2^ + b^2^) を計算します。

シグネチャ:

Copied!
1 2 3 4 5 6 -- HYPOT(列l, 列r) 二つの列のユークリッド距離を計算 -- HYPOT(列l, double r) 列lと数値rのユークリッド距離を計算 -- HYPOT(列l, String rightName) 列lとrightNameという名前の列のユークリッド距離を計算 HYPOT(Column l, Column r) HYPOT(Column l, double r) HYPOT(Column l, String rightName)
LOG

説明: 与えられた値の自然対数を計算します。

シグネチャ:

Copied!
1 2 -- LOG(列 e)を計算します LOG(Column e)

LOG10

説明: 与えられた値の底 10 の対数を計算します。

シグネチャ:

Copied!
1 LOG10(Column e) -- 列 e の対数(底10)を計算します

LOG1P

説明: 与えられた値に1を加えた自然対数を計算します。

シグネチャ:

Copied!
1 LOG1P(カラム e) -- eカラムの対数を計算します。この関数は1にeの値を加え、その結果の自然対数(底がeの対数)を返します。数学的には、log(1 + e)と同じです。
### ``LOG2``

**説明:**
指定された行の2を底とする対数を計算します。

**シグネチャ:**
Copied!
1 LOG2(Column expr) -- この関数は、指定された列の値の2を底とする対数を計算します。

NEGATIVE

説明: 単項マイナス(式を否定します)。

署名:

Copied!
1 NEGATIVE(カラム e)

このコードは、指定したカラム e の値を否定(負の値に変換)します。

PMOD

説明: dividend mod divisor の正の値を返します。

シグネチャ:

Copied!
1 2 -- PMOD(列 除数, 列 割る数) PMOD(Column dividend, Column divisor)
POW(数値1, 数値2)

説明: 第1引数を第2引数のべき乗にした値を返します。

シグネチャ:

Copied!
1 2 3 4 5 6 7 8 -- 次の関数は、l列の値を底としてr列の値を指数とするべき乗計算を行います POW(Column l, Column r) -- この関数は、l列の値を底として、r(倍精度浮動小数点型)を指数とするべき乗計算を行います POW(Column l, double r) -- この関数は、l列の値を底として、rightName(文字列型)という名前の列の値を指数とするべき乗計算を行います POW(Column l, String rightName)
RINT

説明: 引数に最も近い値であり、数学的な整数に等しい倍精度値を返します。

シグネチャ:

Copied!
1 RINT(カラム e) -- RINT関数は、引数として指定されたeカラムの値を最も近い整数に四捨五入します。

ROUND

説明:e の値を小数点以下 0 桁に丸めた値を返します。

シグネチャ:

Copied!
1 2 3 4 -- Column eの値を四捨五入する ROUND(Column e) -- Column eの値を、int scaleで指定された小数点以下の桁数まで四捨五入する ROUND(Column e, int scale)

SHIFTLEFT

説明: 指定された値を numBits 左にシフトします。

シグネチャ:

Copied!
1 2 3 4 -- SHIFTLEFT関数:指定されたビット数だけ左にシフトします -- Column e:シフトする列 -- int numBits:シフトするビット数 SHIFTLEFT(Column e, int numBits)

SHIFTRIGHT

説明: 指定された値を numBits 右にシフトします。

シグネチャ:

Copied!
1 SHIFTRIGHT(列 e, int numBits) -- 列 e のビットを右に numBits 分シフトします

SHIFTRIGHTUNSIGNED

説明: 指定された値を numBits 右に符号なしシフトします。

シグネチャ:

Copied!
1 2 -- 符号なし右シフト (Column e、整数 numBits) SHIFTRIGHTUNSIGNED(Column e, int numBits)
SIGNUM(数値)

説明: 与えられた値の符号を計算します。

シグネチャ:

Copied!
1 SIGNUM(列 e) -- SIGNUM関数は、指定された列eの値が正なら1、負なら-1、0なら0を返します。

SIN

説明: 指定された値の正弦を計算します。

シグネチャ:

Copied!
1 SIN(列 e) -- 列eの正弦(SIN)を計算します
SINH(数値)

説明: 与えられた値の双曲線正弦を計算します。

シグネチャ:

Copied!
1 SINH(Column e) -- SINH(列eを計算)

SQRT

説明: 指定された浮動小数点値の平方根を計算します。

シグネチャ:

Copied!
1 2 -- SQRT(カラム e) SQRT(Column e)

TAN

説明: 与えられた値の正接を計算します。

シグネチャ:

Copied!
1 TAN(カラム e) -- カラムeの正接を計算します
### ``TANH``

**説明:**
与えられた値の双曲線正接を計算します。

**署名:**
Copied!
1 TANH(カラム e) -- ハイパボリックタンジェント関数。カラムeの各値に対してハイパボリックタンジェントを計算します。

TODEGREES

説明: ラジアンで測定された角度を、おおよそ等価な度数で測定された角度に変換します。

シグネチャ:

Copied!
1 TODEGREES(Column e) --列eを度数法に変換します

TORADIANS

説明: 角度を度単位から、ほぼ等価なラジアン単位の角度に変換します。

シグネチャ:

Copied!
1 TORADIANS(カラム e) -- カラムeの値をラジアンに変換します

Null 関数

関数説明
COALESCE最初の null でない行を返す、またはすべての入力が null の場合は null を返す。
ISNULL行が null であれば true を返す。
NULLIF両方の引数が等しい場合は null を返し、そうでない場合は最初の引数を返す。

COALESCE

説明: 最初の null でない行を返す、またはすべての入力が null の場合は null を返します。

シグネチャ:

Copied!
1 2 -- COALESCE関数は、引数のリストの中でNULL以外の最初の値を返します。 COALESCE(列名... e)
ISNULL

説明: 行が null の場合に true を返します。

シグネチャ:

Copied!
1 2 -- ISNULL(カラム e) をチェック ISNULL(Column e)

NULLIF

説明: 両方の引数が等しい場合は null を返し、そうでない場合は最初の引数を返します。

シグネチャ:

Copied!
1 NULLIF(カラム l, カラム r) -- この関数は、2つのカラムの値が等しい場合にNULLを返し、異なる場合には最初のカラムの値を返します。

コレクション関数

関数説明
ARRAY新しい配列の行を作成します。
ARRAY_CONTAINS配列が値を含んでいれば、trueを返します。
EXPLODE与えられた配列またはマップの行ごとに新しい行を作成します。
MAP新しいマップの行を作成します。
POSEXPLODE与えられた配列またはマップの行の各要素に対して位置を持つ新しい行を作成します。
SIZE配列またはマップの長さを返します。
SORT_ARRAY指定した行の入力配列を昇順/降順でソートします。
STRUCT新しい構造体の行を作成します。

ARRAY

説明: 新しい配列の行を作成します。

シグネチャ:

Copied!
1 2 -- 配列(カラム... cols) ARRAY(Column... cols)
### ``ARRAY_CONTAINS``

**説明:**
配列に``value``が含まれている場合、true を返します。

**シグネチャ:**

```sql
ARRAY_CONTAINS(Column column, Object value)

この関数は、指定した値が配列のカラムに存在するかどうかを確認します。

  • Column columnは配列のカラムを指定します。
  • Object valueは検索したい値を指定します。

返り値はブール値で、値が存在すればtrue、存在しなければfalseを返します。

EXPLODE

説明: 指定された配列またはマップの行ごとに新しい行を作成します。

署名:

Copied!
1 EXPLODE(Column e) -- EXPLODE(カラム e)

MAP

説明: 新しいマップ行を作成します。

シグネチャ:

Copied!
1 MAP(Column... cols)

このコードは、指定されたカラムをマップ(key-valueペアの集合)に変換します。

コメントを日本語で追加すると以下のようになります。

Copied!
1 MAP(Column... cols) -- このコードは指定されたカラムをマップ(key-valueペアの集合)に変換します。

POSEXPLODE

説明: 指定された配列またはマップ行の要素ごとに位置を持つ新しい行を作成します。

シグネチャ:

Copied!
1 POSEXPLODE(カラム e) -- POSEXPLODEは配列の各要素を行として返し、その要素の位置(0から始まるインデックス)と値を含む新しい行を生成する関数です。ここでは、'e'という名前のカラムを対象としています。

SIZE

説明: 配列やマップの長さを返します。

シグネチャ:

Copied!
1 SIZE(列 e)

このコードは、SQLのSIZE関数を使用して、列eの要素数を取得します。

SORT_ARRAY

説明: 指定された行の入力配列を昇順/降順でソートし、配列要素の自然な順序に従います。ソートはデフォルトで昇順に設定されていますが、ascがfalseに設定されている場合はその限りではありません。

シグネチャ:

Copied!
1 2 3 4 5 6 -- 配列をソートする(昇順) SORT_ARRAY(Column e) -- 配列をソートする(昇順または降順) -- ascがtrueの場合、昇順でソートされ、falseの場合、降順でソートされます SORT_ARRAY(Column e, boolean asc)

STRUCT

説明: 新しい構造体の行を作成します。

シグネチャ:

Copied!
1 STRUCT(Column... cols) -- STRUCT(カラム... cols)

ウィンドウ関数

関数説明
LAG現在の行より前の offset 行の値を返し、現在の行より前に offset 行がない場合は null を返します。
LEAD現在の行より後の offset 行の値を返し、現在の行より後に offset 行がない場合は null を返します。

LAG

説明: ウィンドウ関数: 現在の行より前の offset 行の値を返し、現在の行より前に offset 行がない場合は null を返します。たとえば、オフセットが1の場合、ウィンドウパーティション内の任意の点で前の行を返します。

シグネチャ:

Copied!
1 2 3 4 -- LAG(列 e, int オフセット) LAG(Column e, int offset) -- LAG(列 e, int オフセット, Object デフォルト値) LAG(Column e, int offset, Object defaultValue)

LEAD

説明: ウィンドウ関数: 現在の行からoffset行後の値を返し、現在の行からoffset行後がない場合は null を返します。

署名:

Copied!
1 2 3 4 -- LEADは、指定した列に対する相対的なオフセット位置の値を返します。 LEAD(列 e, int オフセット) -- または、デフォルト値を指定して使用することも可能です。 LEAD(列 e, int オフセット, オブジェクト デフォルト値)

その他の関数

関数説明
CRC32バイナリ行の巡回冗長検査値を計算し、bigint 値として返します。
GREATESTnull 値をスキップして、値のリストの最大値を返します。
HASH指定された行のハッシュコードを計算し、int 行として結果を返します。
HEX指定された行の 16 進数値を計算します。
ISNAN行が NaN の場合に真を返します。
LEASTnull 値をスキップして、値のリストの最小値を返します。
MD5バイナリ行の MD5 ダイジェストを計算し、32 文字の 16 進数文字列として値を返します。
NANVLcol1 が NaN でない場合は col1 を返し、col1 が NaN の場合は col2 を返します。
NOTブール式の反転。
SHA1バイナリ行の SHA-1 ダイジェストを計算し、40 文字の 16 進数文字列として値を返します。
SHA2バイナリ行の SHA-2 ハッシュ関数ファミリーを計算し、16 進数文字列として値を返します。
WHEN複数の条件を評価し、複数の可能な結果式のうちの 1 つを返します。

CRC32

説明: バイナリ行の巡回冗長検査値 (CRC32) を計算し、bigint 値として返します。

シグネチャ:

Copied!
1 CRC32(Column e) -- CRC32(列 e)
GREATEST

説明: 値のリストから最大の値を返し、null 値はスキップします。">" 演算子を使って値を比較します。この関数は少なくとも 2 つのパラメーターを取ります。すべてのパラメーターが null の場合にのみ null を返します。

シグネチャ:

Copied!
1 GREATEST(カラム... exprs) -- 与えられた式の中で最大の値を返す
HASH

説明: 指定された行のハッシュコードを計算し、結果を int 行として返します。

シグネチャ:

Copied!
1 2 -- HASH(列... cols) HASH(カラム... cols)
HEX

説明: 指定された行の 16 進数値を計算します。が int 型またはバイナリ型の場合、16 進数形式の文字列で数字を返します。が文字列型の場合、各文字を 16 進数表現に変換し、結果として得られる文字列を返します。

署名:

Copied!
1 HEX(Column column) -- 与えられたカラムの値を16進数に変換します

ISNAN

説明: 行が NaN の場合、true を返します。

シグネチャ:

Copied!
1 ISNAN(Column e) -- 指定したカラムeがNaN(非数)であるかどうかを判定します

LEAST

説明: 値のリストから最小値を返します。null 値は無視します。「<」演算子を使用して値を比較します。この関数は少なくとも 2つのパラメーターを必要とします。すべてのパラメーターが null の場合にのみ null を返します。

シグネチャ:

Copied!
1 2 -- LEAST(カラム... 式) LEAST(Column... exprs)

MD5

説明: バイナリ行の MD5 ダイジェストを計算し、その値を 32 文字の 16 進数の文字列として返します。

シグネチャ:

Copied!
1 MD5(カラム e) -- カラムeの値のMD5ハッシュを計算します。

NANVL

説明: col1 が NaN でない場合は col1 を返し、col1 が NaN の場合は col2 を返します。

シグネチャ:

Copied!
1 NANVL(カラム col1, カラム col2)

このSQL関数は、col1がNaN(Not a Number、数値でない値)である場合、col2の値を返します。もしcol1がNaNでない場合は、col1の値がそのまま返されます。これは、データクレンジングや欠損値の処理に便利な関数です。

NOT

説明: ブール表現の逆転(つまり、NOT)。

署名:

Copied!
1 NOT(カラム e) -- カラムeの値が偽(false)であれば真(true)を、真(true)であれば偽(false)を返します。

SHA1

説明: バイナリ行の SHA-1 ダイジェストを計算し、値を 40 文字の 16 進数文字列として返します。

署名:

Copied!
1 2 -- SHA1ハッシュ関数を使用して、列eのデータをハッシュ化します SHA1(Column e)

SHA2

説明: バイナリ行の SHA-2 ファミリのハッシュ関数を計算し、その値を 16 進数の文字列として返します。

シグネチャ:

Copied!
1 2 -- SHA2(カラム e, 整数 numBits) SHA2(Column e, int numBits)

WHEN

説明: 条件のリストを評価し、複数の可能な結果式のうちの一つを返します。

シグネチャ:

Copied!
1 2 3 -- 日本語のコメント -- Column conditionが満たされた場合、Object valueを返す WHEN(カラム条件, オブジェクト値)