注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このセクションでは、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`
エイリアス名は大文字と小文字を区別します。
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>
で使用可能な値は次のとおりです:
日付の値を再フォーマットしたい場合や、文字列を日付形式に変換したい場合があるかもしれません。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 | 重複要素を削除したオブジェクトのセットを返します。 |
CORR | 2つの行のピアソン相関係数を返します。 |
COUNT | グループ内のアイテム数を返します。 |
COVAR_POP | 2つの行の母集団共分散を返します。 |
COVAR_SAMP | 2つの行の標本共分散を返します。 |
FIRST | グループ内の最初の値を返します。 |
GROUPING | GROUP BYリスト内の指定された行が集約されているかどうかを示します。 |
KURTOSIS | グループ内の値の尖度を返します。 |
LAST | グループ内の最後の値を返します。 |
MAX | グループ内の式の最大値を返します。 |
MEAN | グループ内の値の平均を返します。 |
MIN | グループ内の式の最小値を返します。 |
SKEWNESS | グループ内の値の歪度を返します。 |
STDDEV | stddev_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 | 指定された文字列またはバイナリ行の長さを計算します。 |
LEVENSHTEIN | 2つの指定された文字列の行のレーベンシュタイン距離を計算します。 |
LOWER | 文字列の行を小文字に変換します。 |
LPAD | 文字列の行を pad で左パディングして、len の長さにします。 |
LTRIM | 指定された文字列の値の左端からスペースをトリムします。 |
REGEXP_EXTRACT | 指定された文字列の行から、Java の正規表現によってマッチした特定のグループを抽出します。 |
REGEXP_REPLACE | 指定された文字列の値で、regexp に一致するすべての部分文字列を rep に置き換えます。 |
REPEAT | 文字列の行を n 回繰り返し、新しい文字列の行として返します。 |
REVERSE | 文字列の行を反転させ、新しい文字列の行として返します。 |
RPAD | 文字列の行を pad で右パディングして、len の長さにします。 |
RTRIM | 指定された文字列の値の右端からスペースをトリムします。 |
SOUNDEX | 指定された式の soundex コードを返します。 |
SPLIT | str を pattern (pattern は正規表現) を基に分割します。 |
SUBSTRING | 文字列またはバイナリタイプの行の部分文字列を返します。 |
SUBSTRING_INDEX | 区切り文字のカウント回数の前にある文字列から部分文字列を返します。 |
TRANSLATE | src の任意の文字を replaceString の文字に変換します。 |
TRIM | 指定された文字列の行の両端からスペースをトリムします。 |
UNBASE64 | BASE64 エンコードされた文字列の行をデコードし、バイナリ行として返します。 |
UNHEX | hex の逆変換。 |
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
は次のいずれかです:
いずれかの引数が null の場合、結果も null になります。
シグネチャ:
Copied!1
DECODE(カラム値, 文字列文字セット)
このコードは、指定した文字セットを使用してカラム値をデコードします。
ENCODE
説明:
指定された charset
を使用して、第一引数を文字列からバイナリに変換します。以下のいずれかを指定できます:
いずれかの引数が 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から始まります。もし、substring
がstr
に含まれていない場合、この関数は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
が正規表現である場合、str
を pattern
で分割します。
シグネチャ:
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
説明:
デリミタ delim
の count
回目の出現前の文字列 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_MONTHS | startDate から numMonths 後の日付を返します。 |
DATEDIFF | 開始から終了までの日数を返します。 |
DATE_ADD | start から days 日後の日付を返します。 |
DATE_FORMAT | 日付 / タイムスタンプ / 文字列を、日付形式で指定された形式の文字列の値に変換します。 |
DATE_SUB | start から days 日前の日付を返します。 |
DAYOFMONTH | 指定された日付 / タイムスタンプ / 文字列から月の日を整数として抽出します。 |
DAYOFYEAR | 指定された日付 / タイムスタンプ / 文字列から年の日を整数として抽出します。 |
FROM_UNIXTIME | unix エポックからの秒数を、現在のシステムタイムゾーンでその瞬間のタイムスタンプを表す文字列に変換します。与えられた形式で表示されます。 |
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
説明:
date1
と date2
の間の月数を返します。
もし date1
が date2
よりも後の場合、結果は正数となります。もし date1
が date2
よりも前の場合、結果は負数となります。もし二つの日付が同じ月の日または両方が月の最終日である場合、結果は整数となります。それ以外の場合、結果は 8 桁の小数点以下まで四捨五入されます。
シグネチャ:
Copied!1
MONTHS_BETWEEN(カラム date1, カラム date2) -- この関数は、date1とdate2の間の月数を計算します。
NEXT_DAY
説明:
date
行が指定された場合、指定した dayOfWeek
で最初の日付を返します。その日付は、date 行の値よりも後の日付です。 dayOfWeek
パラメーターは大文字と小文字を区別せず、以下のいずれかになります:
シグネチャ:
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 | 単項マイナス。 |
PMOD | dividend 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の値をラジアンに変換します
関数 | 説明 |
---|---|
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 値として返します。 |
GREATEST | null 値をスキップして、値のリストの最大値を返します。 |
HASH | 指定された行のハッシュコードを計算し、int 行として結果を返します。 |
HEX | 指定された行の 16 進数値を計算します。 |
ISNAN | 行が NaN の場合に真を返します。 |
LEAST | null 値をスキップして、値のリストの最小値を返します。 |
MD5 | バイナリ行の MD5 ダイジェストを計算し、32 文字の 16 進数文字列として値を返します。 |
NANVL | col1 が 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(カラム条件, オブジェクト値)