注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このセクションでは、Spark SQL によるデータ変換の記述と、ほかの種類の SQL クエリの記述との主な違いについて説明します。また、利用可能な Spark SQL 関数の一覧も掲載しています。
資料を探す際は、Spark SQL が実際には HiveQL 方言に基づいていることに留意してください。HiveQL の詳細情報はオンラインで確認できます。
SQL データ変換クエリは、必ずテーブルを作成する必要があります。SQL クエリの一般的な形式は次のとおりです。
Copied!1CREATE TABLE _____ AS SELECT _____
ステートメントの末尾にセミコロンを含めないでください。 セミコロンを含めるとエラーになります。
SQL コードには、次のようにコメントを含めることができます。
Copied!1 2 3 4 5-- 次の構文で -- コメントを作成できます /* 次の構文でもコメントを作成 できます */
データセットを参照するには、データセットのパスをバッククォートで囲んで指定します。
Copied!1 2 3 4 5 6 7 8CREATE TABLE `/path/to/target/dataset` AS SELECT * FROM `/path/to/source/dataset` -- 別の構文 CREATE TABLE `/path/to/target/dataset` AS ( SELECT * FROM `/path/to/source/dataset` )
データセット名では大文字と小文字が区別されます。
データセットの特定の列を参照するには、列名を指定します。
Copied!1SELECT Name FROM `/path/to/source/dataset`
列名では大文字と小文字が区別されます。
派生列は、データセットの列に対して関数を呼び出した結果です。派生列には必ずエイリアスを定義する必要があります。
Copied!1SELECT Sum(Val) AS Total FROM `/path/to/source/dataset`
次のクエリはエラーになります。
Copied!1SELECT Sum(Val) FROM `/path/to/source/dataset`
エイリアス名では大文字と小文字が区別されます。
WHERE 句と GROUP BY 句では、エイリアスを使用できません。そのため、WHERE 句または GROUP BY 句では、実際の関数とデータセットの列を参照する必要があります。
Copied!1 2 3 4 5SELECT Lower(Name) AS LowercaseName FROM `/path/to/source/dataset` WHERE Lower(Name) = "sara" SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name)
ORDER BY 句と HAVING 句では、エイリアスを使用できます。そのため、次のクエリはいずれも動作します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15-- 次の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つのクエリはどちらも有効です SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) HAVING Total > 100 SELECT Lower(Name) AS LowercaseName, Sum(Val) AS Total FROM `/path/to/source/dataset` GROUP BY Lower(Name) HAVING Sum(Val) > 100
式をキャストして、あるデータ型から別のデータ型に変換できます。キャストの構文は次のとおりです。
Copied!1CAST(expr AS <TYPE>)
この構文では、expr はキャストする式を表し、<TYPE> は式の変換先のデータ型を表します。CAST(expr AS <TYPE>) に成功しなかった場合は、null が返されます。<TYPE> に指定できる値は次のとおりです。
日付の値の書式を変更したり、文字列を日付形式に変換したりする場合があります。date は yyyy-MM-dd 形式で、時刻の要素は含まれません。CAST 関数と利用可能な日時関数を組み合わせて、文字列を日付に変換できます。簡単な例をいくつか示します。
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' 形式の文字列をタイムスタンプに変換します(タイムスタンプは指定された日付の午前0時に基づきます) 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説明:
集計関数:グループ内の一意の項目の近似件数を返します。rsd が指定されていない場合、許容される最大推定誤差のデフォルトは0.05です。
シグネチャ:
Copied!1 2APPROXCOUNTDISTINCT(Column e) APPROXCOUNTDISTINCT(Column e, double rsd)
AVG説明: 集計関数:グループ内の値の平均を返します。
シグネチャ:
Copied!1AVG(Column e)
COLLECT_LIST説明: 集計関数:重複を含むオブジェクトのリストを返します。
シグネチャ:
Copied!1COLLECT_LIST(Column e)
COLLECT_SET説明: 集計関数:重複する要素を除いたオブジェクトの集合を返します。
シグネチャ:
Copied!1COLLECT_SET(Column e)
CORR説明: 集計関数:2列のピアソンの相関係数を返します。
シグネチャ:
Copied!1CORR(Column column1, Column column2)
COUNT説明: 集計関数:グループ内の項目の件数を返します。
シグネチャ:
Copied!1COUNT(Column e)
COVAR_POP説明: 集計関数:2列の母共分散を返します。 シグネチャ:
Copied!1COVAR_POP(Column column1, Column column2)
COVAR_SAMP説明: 集計関数:2列の標本共分散を返します。
シグネチャ:
Copied!1COVAR_SAMP(Column column1, Column column2)
FIRST説明:
集計関数:グループ内の最初の値を返します。デフォルトでは、最初に読み取った値を返します。ignoreNulls が true に設定されている場合、最初に読み取った null 以外の値を返します。すべての値が null の場合は、null を返します。
シグネチャ:
Copied!1FIRST(Column e)FIRST(Column e, boolean ignoreNulls)
GROUPING説明: 集計関数:GROUP BY リスト内の指定した列が集計されているかどうかを示します。結果セット内で集計されている場合は1、集計されていない場合は0を返します。
シグネチャ:
Copied!1GROUPING(Column e)
KURTOSIS説明: 集計関数:グループ内の値の尖度を返します。
シグネチャ:
Copied!1KURTOSIS(Column e)
LAST説明:
集計関数:グループ内の最後の値を返します。デフォルトでは、最後に読み取った値を返します。ignoreNulls が true に設定されている場合、最後に読み取った null 以外の値を返します。すべての値が null の場合は、null を返します。
シグネチャ:
Copied!1LAST(Column e)LAST(Column e, boolean ignoreNulls)
MAX説明: 集計関数:グループ内の式の最大値を返します。
シグネチャ:
Copied!1MAX(Column e)
MEAN説明: 集計関数:グループ内の値の平均を返します。
シグネチャ:
Copied!1MEAN(Column e)
MIN説明: 集計関数:グループ内の式の最小値を返します。
シグネチャ:
Copied!1MIN(Column e)
SKEWNESS説明: 集計関数:グループ内の値の歪度を返します。
シグネチャ:
Copied!1SKEWNESS(Column e)
STDDEV説明: 集計関数:stddev_samp のエイリアスです。
シグネチャ:
Copied!1STDDEV(Column e)
STDDEV_POP説明: 集計関数:グループ内の式の母標準偏差を返します。
シグネチャ:
Copied!1STDDEV_POP(Column e)
STDDEV_SAMP説明: 集計関数:グループ内の式の標本標準偏差を返します。
シグネチャ:
Copied!1STDDEV_SAMP(Column e)
SUM説明: 集計関数:式のすべての値の合計を返します。
シグネチャ:
Copied!1SUM(Column e)
VARIANCE説明: 集計関数:グループ内の値の不偏分散を返します。VAR_SAMP 関数のエイリアスです。
シグネチャ:
Copied!1VARIANCE(Column e)
VAR_POP説明: 集計関数:グループ内の値の母分散を返します。
シグネチャ:
Copied!1VAR_POP(Column e)
VAR_SAMP説明: 集計関数:グループ内の値の不偏分散を返します。
シグネチャ:
Copied!1VAR_SAMP(Column e)
| 関数 | 説明 |
|---|---|
| ASCII | 文字列列の最初の文字の数値を計算し、結果を int 型の列として返します。 |
| BASE64 | バイナリ列を BASE64 エンコードし、文字列列として返します。 |
| CONCAT | 複数の入力文字列列を1つの文字列列に連結します。 |
| DECODE | 指定された文字セットを使用して、第1引数をバイナリから文字列に変換します。 |
| ENCODE | 指定された文字セットを使用して、第1引数を文字列からバイナリに変換します。 |
| FORMAT_NUMBER | 数値列を小数点以下 d 桁に丸め、‘#,###,###.##’ のような形式に整形します。 |
| GET_JSON_OBJECT | 指定された JSON パスに基づいて JSON 文字列から JSON オブジェクトを抽出し、抽出した JSON オブジェクトの JSON 文字列を返します。 |
| INSTR | 指定された文字列列で部分文字列が最初に出現する位置を特定します。 |
| JSON_TUPLE | 指定されたフィールド名に従って、JSON 列に対して新しい行を作成します。 |
| LENGTH | 指定された文字列列またはバイナリ列の長さを計算します。 |
| LEVENSHTEIN | 指定された2つの文字列列のレーベンシュタイン距離を計算します。 |
| LOWER | 文字列列を小文字に変換します。 |
| LPAD | 文字列列の長さが len になるように、左側を pad で埋めます。 |
| LTRIM | 指定された文字列値の左端から空白を削除します。 |
| REGEXP_EXTRACT | 指定された文字列列から、Java の正規表現に一致する特定のグループを抽出します。 |
| REGEXP_REPLACE | 指定された文字列値のうち、regexp に一致するすべての部分文字列を rep に置換します。 |
| REPEAT | 文字列列を n 回繰り返し、新しい文字列列として返します。 |
| REVERSE | 文字列列を反転し、新しい文字列列として返します。 |
| RPAD | 文字列列の長さが len になるように、右側を pad で埋めます。 |
| RTRIM | 指定された文字列値の右端から空白を削除します。 |
| SOUNDEX | 指定された式の Soundex コードを返します。 |
| SPLIT | pattern を区切りとして str を分割します(pattern は正規表現です)。 |
| SUBSTRING | 文字列型またはバイナリ型の列の部分文字列を返します。 |
| SUBSTRING_INDEX | 文字列から、区切り文字の count 回目の出現より前の部分文字列を返します。 |
| TRANSLATE | src 内の文字を replaceString 内の文字に置換します。 |
| TRIM | 指定された文字列列の両端から空白を削除します。 |
| UNBASE64 | BASE64 エンコードされた文字列列をデコードし、バイナリ列として返します。 |
| UNHEX | hex の逆操作です。 |
| UPPER | 文字列列を大文字に変換します。 |
ASCII説明: 文字列列の最初の文字の数値を計算し、結果を int 型の列として返します。
シグネチャ:
Copied!1ASCII(Column e)
BASE64説明: バイナリ列を BASE64 エンコードし、文字列列として返します。
シグネチャ:
Copied!1BASE64(Column e)
CONCAT説明: 複数の入力文字列列を1つの文字列列に連結します。
シグネチャ:
Copied!1CONCAT(Column... exprs)
DECODE説明:
指定された charset を使用して、第1引数をバイナリから文字列に変換します。charset は次のいずれかです。
いずれかの引数が null の場合、結果も null になります。
シグネチャ:
Copied!1DECODE(Column value, String charset)
ENCODE説明:
指定された charset を使用して、第1引数を文字列からバイナリに変換します。charset は次のいずれかです。
いずれかの引数が null の場合、結果も null になります。
シグネチャ:
Copied!1ENCODE(Column value, String charset)
FORMAT_NUMBER説明:
数値列 x を HALF_EVEN 丸めモード(ガウス丸めまたは銀行家の丸めとも呼ばれます)で小数点以下 d 桁に丸め、‘#,###,###.##’ のような形式に整形します。結果を文字列列として返します。d が0の場合、結果には小数点も小数部も含まれません。d が0より小さい場合は null を返します。
シグネチャ:
Copied!1FORMAT_NUMBER(Column x, int d)
GET_JSON_OBJECT説明:
指定された JSON の path に基づいて JSON 文字列から JSON オブジェクトを抽出し、抽出した JSON オブジェクトの JSON 文字列を返します。入力 JSON 文字列が無効な場合は null を返します。
シグネチャ:
Copied!1GET_JSON_OBJECT(Column e, String path)
INSTR説明:
指定された文字列列で substring が最初に出現する位置を特定します。いずれかの引数が null の場合は null を返し、str 内に substring が見つからなかった場合は0を返します。
返される位置は、0ではなく1から始まるインデックスです。
シグネチャ:
Copied!1INSTR(Column str, String substring)
JSON_TUPLE説明: 指定されたフィールド名に従って、JSON 列に対して新しい行を作成します。
シグネチャ:
Copied!1 2JSON_TUPLE(Column json, scala.collection.Seq<String> fields) JSON_TUPLE(Column json, String... fields)
LENGTH説明: 指定された文字列列またはバイナリ列の長さを計算します。
シグネチャ:
Copied!1LENGTH(Column e)
LEVENSHTEIN説明: 指定された2つの文字列列のレーベンシュタイン距離を計算します。
シグネチャ:
Copied!1LEVENSHTEIN(Column l, Column r)
LOWER説明: 文字列列を小文字に変換します。
シグネチャ:
Copied!1LOWER(Column e)
LPAD説明:
文字列列の長さが len になるように、左側を pad で埋めます。
シグネチャ:
Copied!1LPAD(Column str, int len, String pad)
LTRIM説明: 指定された文字列値の左端から空白を削除します。
シグネチャ:
Copied!1LTRIM(Column e)
REGEXP_EXTRACT説明:
指定された文字列列から、Java の正規表現(exp)に一致する特定のグループ(groupIdx)を抽出します。正規表現に一致しなかった場合、または指定されたグループに一致しなかった場合は、空の文字列を返します。
シグネチャ:
Copied!1REGEXP_EXTRACT(Column e, String exp, int groupIdx)
REGEXP_REPLACE説明:
指定された文字列値のうち、Java の正規表現 pattern に一致するすべての部分文字列を replacement に置換します。
シグネチャ:
Copied!1REGEXP_REPLACE(Column e, String pattern, String replacement)
REPEAT説明:
文字列列を n 回繰り返し、新しい文字列列として返します。
シグネチャ:
Copied!1REPEAT(Column str, int n)
REVERSE説明: 文字列列を反転し、新しい文字列列として返します。
シグネチャ:
Copied!1REVERSE(Column str)
RPAD説明:
文字列列の長さが len になるように、右側を pad で埋めます。
シグネチャ:
Copied!1RPAD(Column str, int len, String pad)
RTRIM説明: 指定された文字列値の右端から空白を削除します。
シグネチャ:
Copied!1RTRIM(Column e)
SOUNDEX説明: 指定された式の Soundex コードを返します。
シグネチャ:
Copied!1SOUNDEX(Column e)
SPLIT説明:
pattern を区切りとして str を分割します。pattern は正規表現です。
シグネチャ:
Copied!1SPLIT(Column str, String pattern)
SUBSTRING説明:
str が String 型の場合、pos から始まる長さ len の部分文字列を返します。str が Binary 型の場合、バイト単位の位置 pos から始まる長さ len のバイト配列のスライスを返します。
シグネチャ:
Copied!1SUBSTRING(Column str, int pos, int len)
SUBSTRING_INDEX説明:
文字列 str から、区切り文字 delim の count 回目の出現より前の部分文字列を返します。delim を検索するときは、大文字と小文字を区別して照合します。count が正の場合、左から数えて最後の区切り文字より左側のすべてを返します。count が負の場合、右から数えて最後の区切り文字より右側のすべてを返します。
シグネチャ:
Copied!1SUBSTRING_INDEX(Column str, String delim, int count)
TRANSLATE説明:
src 内の文字を replaceString 内の文字に置換します。replaceString 内の文字は、matchingString 内の文字に対応します。文字列内の文字が matchingString 内の文字に一致すると、置換が行われます。
シグネチャ:
Copied!1TRANSLATE(Column src, String matchingString, String replaceString)
TRIM説明: 指定された文字列列の両端から空白を削除します。
シグネチャ:
Copied!1TRIM(Column e)
UNBASE64説明: BASE64 エンコードされた文字列列をデコードし、バイナリ列として返します。
シグネチャ:
Copied!1UNBASE64(Column e)
UNHEX説明: hex の逆操作です。文字の各ペアを16進数として解釈し、その数値のバイト表現に変換します。
シグネチャ:
Copied!1UNHEX(Column column)
UPPER説明: 文字列列を大文字に変換します。
シグネチャ:
Copied!1UPPER(Column e)
| 関数 | 説明 |
|---|---|
| ADD_MONTHS | startDate から numMonths か月後の日付を返します。 |
| DATEDIFF | start から end までの日数を返します。 |
| 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 | 列を 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!1ADD_MONTHS(Column startDate, int numMonths)
DATEDIFF説明:
start から end までの日数を返します。
シグネチャ:
Copied!1DATEDIFF(Column end, Column start)
DATE_ADD説明:
start から days 日後の日付を返します。
シグネチャ:
Copied!1DATE_ADD(Column start, int days)
DATE_FORMAT説明:
日付/タイムスタンプ/文字列を、日付の format で指定された形式の文字列値に変換します。dateExpr が文字列の場合は、「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
パターン文字列 format には、SimpleDateFormat のパターン文字を使用できます。詳細については、Java SimpleDateFormat のドキュメント ↗ を参照してください。
シグネチャ:
Copied!1DATE_FORMAT(Column dateExpr, String format)
DATE_SUB説明:
start から days 日前の日付を返します。
シグネチャ:
Copied!1DATE_SUB(Column start, int days)
DAYOFMONTH説明: 指定された日付/タイムスタンプ/文字列から、月内の日を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1DAYOFMONTH(Column e)
DAYOFYEAR説明: 指定された日付/タイムスタンプ/文字列から、年内の通算日を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1DAYOFYEAR(Column e)
FROM_UNIXTIME説明:
Unix エポック (1970-01-01 00:00:00 UTC) からの秒数を、現在のシステムタイムゾーンにおけるその時点のタイムスタンプを表す、指定された形式の文字列に変換します。
パターン文字列 f が指定されていない場合、結果の文字列のデフォルト形式は yyyy-MM-dd HH:mm です。結果の文字列の形式を変更するには、パターン文字列 f を指定します。パターン文字列には、SimpleDateFormat のパターン文字を使用できます。詳細については、Java SimpleDateFormat のドキュメント ↗ を参照してください。
シグネチャ:
Copied!1FROM_UNIXTIME(Column ut)FROM_UNIXTIME(Column ut, String f)
FROM_UTC_TIMESTAMP説明:
指定されたタイムスタンプを UTC とみなし、tz で指定されたタイムゾーンに変換します。
タイムスタンプ(UTC の特定の時刻に対応するもの)を受け取り、tz で指定されたタイムゾーンの同じ時刻に対応する別のタイムスタンプを返します。
シグネチャ:
Copied!1FROM_UTC_TIMESTAMP(Column ts, String tz)
HOUR説明: 指定された日付/タイムスタンプ/文字列から、時を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1HOUR(Column e)
LAST_DAY説明: 日付列を受け取り、指定された日付が属する月の最終日を返します。
シグネチャ:
Copied!1LAST_DAY(Column e)
MINUTE説明: 指定された日付/タイムスタンプ/文字列から、分を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1MINUTE(Column e)
MONTH説明: 指定された日付/タイムスタンプ/文字列から、月を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1MONTH(Column e)
MONTHS_BETWEEN説明:
日付 date1 と date2 の間の月数を返します。
date1 が date2 より後の場合、結果は正の値になります。date1 が date2 より前の場合、結果は負の値になります。2つの日付の月内の日が同じ場合、または両方とも月の最終日である場合、結果は整数になります。それ以外の場合、結果は小数点以下8桁に丸められます。
シグネチャ:
Copied!1MONTHS_BETWEEN(Column date1, Column date2)
NEXT_DAY説明:
date 列を受け取り、日付列の値より後で、指定された dayOfWeek に該当する最初の日付を返します。dayOfWeek パラメーターは大文字と小文字を区別せず、次のいずれかの値を指定できます。
シグネチャ:
Copied!1NEXT_DAY(Column date, String dayOfWeek)
QUARTER説明: 指定された日付/タイムスタンプ/文字列から、四半期を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。結果の四半期は1から4の範囲です。
シグネチャ:
Copied!1QUARTER(Column e)
SECOND説明: 指定された日付/タイムスタンプ/文字列から、秒を整数として抽出します。文字列は「yyyy-MM-dd」または「yyyy-MM-dd HH:mm」形式である必要があります。
シグネチャ:
Copied!1SECOND(Column e)
TO_DATE説明: 列を date データ型に変換します。
シグネチャ:
Copied!1TO_DATE(Column e)
TO_UTC_TIMESTAMP説明:
指定されたタイムスタンプ(ts)が指定されたタイムゾーン(tz)のものとみなし、UTC に変換します。
シグネチャ:
Copied!1TO_UTC_TIMESTAMP(Column ts, String tz)
TRUNC説明:
format で指定された単位に切り詰めた日付を返します。format パラメーターには、年単位で切り詰める場合は ‘year’、‘yyyy’、‘yy’ を、月単位で切り詰める場合は ‘month’、‘mon’、‘mm’ を指定します。
シグネチャ:
Copied!1TRUNC(Column date, String format)
UNIX_TIMESTAMP説明: デフォルトのタイムゾーンとデフォルトのロケールを使用して、時刻の文字列を Unix タイムスタンプ(秒単位)に変換します。文字列からタイムスタンプへの変換に失敗した場合は null を返します。
パターン文字列が指定されていない場合、入力列 s のデフォルトの形式は yyyy-MM-dd HH:mm です。入力列が異なる形式の場合は、パターン文字列 p を指定してください。パターン文字列には SimpleDateFormat のパターン文字を使用できます。詳細については、Java SimpleDateFormat のドキュメント ↗を参照してください。
シグネチャ:
Copied!1UNIX_TIMESTAMP(Column s)UNIX_TIMESTAMP(Column s, String p)
WEEKOFYEAR説明: 指定された日付、タイムスタンプ、または文字列から週番号を整数として抽出します。文字列は ‘yyyy-MM-dd’ または ‘yyyy-MM-dd HH:mm’ 形式である必要があります。
シグネチャ:
Copied!1WEEKOFYEAR(Column e)
WINDOW説明:
タイムスタンプを指定する列に基づいて、タンブリング時間ウィンドウまたはスライディング時間ウィンドウを生成します。slideDuration が指定されていない場合は、タンブリング時間ウィンドウを生成します。slideDuration が指定されている場合は、行を1つ以上の時間ウィンドウに振り分けて、スライディング時間ウィンドウを生成します。
ウィンドウの開始時刻は範囲に含まれ、終了時刻は含まれないため、12:05 はウィンドウ [12:05,12:10) に含まれますが、[12:00,12:05) には含まれません。ウィンドウはマイクロ秒精度に対応できます。月単位のウィンドウには対応していません。
startTime が指定されていない場合、ウィンドウは 1970-01-01 00:00:00 UTC から開始します。
この関数は次のパラメーターを受け付けます。
timeColumn:時間でウィンドウを区切る際にタイムスタンプとして使用する列です。時間列は TimestampType である必要があります。windowDuration:ウィンドウの幅を指定する文字列です。たとえば、10 minutes、1 second などです。この期間は固定長の時間であり、カレンダーに従って変動することはありません。slideDuration:ウィンドウのスライド間隔を指定する文字列です。たとえば、1 minute などです。slideDuration ごとに新しいウィンドウが生成されます。windowDuration 以下である必要があります。この期間も同様に固定長であり、カレンダーに従って変動することはありません。startTime:ウィンドウの区間を開始するための、1970-01-01 00:00:00 UTC を基準としたオフセットです。たとえば、毎時15分に開始する1時間のタンブリングウィンドウ(例: 12:15-13:15, 13:15-14:15…)を作成するには、startTime に 15 minutes を指定します。シグネチャ:
Copied!1WINDOW(Column timeColumn, String windowDuration)WINDOW(Column timeColumn, String windowDuration, String slideDuration)WINDOW(Column timeColumn, String windowDuration, String slideDuration, String startTime)
YEAR説明: 指定された日付、タイムスタンプ、または文字列から年を整数として抽出します。文字列は ‘yyyy-MM-dd’ または ‘yyyy-MM-dd HH:mm’ 形式である必要があります。
シグネチャ:
Copied!1YEAR(Column e)
| 関数 | 説明 |
|---|---|
| ABS | 絶対値を計算します。 |
| ACOS | 指定された値の逆余弦を計算します。 |
| ASIN | 指定された値の逆正弦を計算します。 |
| ATAN | 指定された値の逆正接を計算します。 |
| ATAN2 | 直交座標 (x, y) を極座標 (r, theta) に変換したときの角度 theta を返します。 |
| BIN | 指定された Long 列の値を2進数の文字列表現で返します。 |
| 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 | 被除数を除数で割った剰余を正の値で返します。 |
| POW | 第1引数を第2引数の値で累乗した値を返します。 |
| RINT | 引数の値に最も近く、数学的な整数に等しい Double 値を返します。 |
| ROUND | 列 e の値を小数点以下0桁に丸めて返します。 |
| SHIFTLEFT | 指定された値を numBits ビット左にシフトします。 |
| SHIFTRIGHT | 指定された値を numBits ビット右にシフトします。 |
| SHIFTRIGHTUNSIGNED | 指定された値を numBits ビット右に符号なしシフトします。 |
| SIGNUM | 指定された値の符号関数を計算します。 |
| SIN | 指定された値の正弦を計算します。 |
| SINH | 指定された値の双曲線正弦を計算します。 |
| SQRT | 指定された Float 値の平方根を計算します。 |
| TAN | 指定された値の正接を計算します。 |
| TANH | 指定された値の双曲線正接を計算します。 |
| TODEGREES | ラジアン単位の角度を、ほぼ等しい度単位の角度に変換します。 |
| TORADIANS | 度単位の角度を、ほぼ等しいラジアン単位の角度に変換します。 |
ABS説明: 絶対値を計算します。
シグネチャ:
Copied!1ABS(Column e)
ACOS説明: 指定された値の逆余弦を計算します。返される角度は0.0から pi までの範囲です。
シグネチャ:
Copied!1ACOS(Column e)
ASIN説明: 指定された値の逆正弦を計算します。返される角度は -pi/2 から pi/2 までの範囲です。
シグネチャ:
Copied!1ASIN(Column e)
ATAN説明: 指定された値の逆正接を計算します。
シグネチャ:
Copied!1ATAN(Column e)
ATAN2説明: 直交座標 (x, y) を極座標 (r, theta) に変換したときの角度 theta を返します。
シグネチャ:
Copied!1ATAN2(Column l, Column r)ATAN2(Column l, double r)ATAN2(Column l, String rightName)
BIN説明: 指定された Long 列の値を2進数の文字列表現で返します。
シグネチャ:
Copied!1BIN(Column e)
BROUND説明:
列 e のみを指定した場合、列 e の値を HALF_EVEN 丸めモードで小数点以下0桁に丸めて返します。これはガウス丸めまたは銀行丸めとも呼ばれます。
scale も指定した場合、列 e の値を小数点以下 scale 桁に丸めて返します(scale >= 0 の場合は HALF_EVEN 丸めモードを使用し、scale < 0 の場合は整数部で丸めます)。
シグネチャ:
Copied!1BROUND(Column e)BROUND(Column e, int scale)
CBRT説明: 指定された値の立方根を計算します。
シグネチャ:
Copied!1CBRT(Column e)
CEIL説明: 指定された値を切り上げた整数値を計算します。
シグネチャ:
Copied!1CEIL(Column e)
CONV説明: 文字列列内の数値を、ある基数から別の基数に変換します。
シグネチャ:
Copied!1CONV(Column num, int fromBase, int toBase)
COS説明: 指定された値の余弦を計算します。
シグネチャ:
Copied!1COS(Column e)
COSH説明: 指定された値の双曲線余弦を計算します。
シグネチャ:
Copied!1COSH(Column e)
EXP説明: 指定された値の指数関数を計算します。
シグネチャ:
Copied!1EXP(Column e)
EXPM1説明: 指定された値の指数関数から1を引いた値を計算します。
シグネチャ:
Copied!1EXPM1(Column e)
FACTORIAL説明: 指定された値の階乗を計算します。
シグネチャ:
Copied!1FACTORIAL(Column e)
FLOOR説明: 指定された値を切り下げた整数値を計算します。
シグネチャ:
Copied!1FLOOR(Column e)
HYPOT説明: 中間計算でオーバーフローやアンダーフローを起こさずに sqrt(a^2^ + b^2^) を計算します。
シグネチャ:
Copied!1HYPOT(Column l, Column r)HYPOT(Column l, double r)HYPOT(Column l, String rightName)
LOG説明: 指定された値の自然対数を計算します。
シグネチャ:
Copied!1LOG(Column e)
LOG10説明: 指定された値の10を底とする対数を計算します。
シグネチャ:
Copied!1LOG10(Column e)
LOG1P説明: 指定された値に1を加えた値の自然対数を計算します。
シグネチャ:
Copied!1LOG1P(Column e)
LOG2説明: 指定された列の値の2を底とする対数を計算します。
シグネチャ:
Copied!1LOG2(Column expr)
NEGATIVE説明: 単項マイナス(式の符号反転を行います)。
シグネチャ:
Copied!1NEGATIVE(Column e)
PMOD説明:
dividend を divisor で割った剰余を正の値で返します。
シグネチャ:
Copied!1PMOD(Column dividend, Column divisor)
POW説明: 第1引数を第2引数の値で累乗した値を返します。
シグネチャ:
Copied!1POW(Column l, Column r)POW(Column l, double r)POW(Column l, String rightName)
RINT説明: 引数の値に最も近く、数学的な整数に等しい Double 値を返します。
シグネチャ:
Copied!1RINT(Column e)
ROUND説明:
列 e の値を小数点以下0桁に丸めて返します。
シグネチャ:
Copied!1ROUND(Column e)ROUND(Column e, int scale)
SHIFTLEFT説明:
指定された値を numBits ビット左にシフトします。
シグネチャ:
Copied!1SHIFTLEFT(Column e, int numBits)
SHIFTRIGHT説明:
指定された値を numBits ビット右にシフトします。
シグネチャ:
Copied!1SHIFTRIGHT(Column e, int numBits)
SHIFTRIGHTUNSIGNED説明:
指定された値を numBits ビット右に符号なしシフトします。
シグネチャ:
Copied!1SHIFTRIGHTUNSIGNED(Column e, int numBits)
SIGNUM説明: 指定された値の符号関数を計算します。
シグネチャ:
Copied!1SIGNUM(Column e)
SIN説明: 指定された値の正弦を計算します。
シグネチャ:
Copied!1SIN(Column e)
SINH説明: 指定された値の双曲線正弦を計算します。
シグネチャ:
Copied!1SINH(Column e)
SQRT説明: 指定された Float 値の平方根を計算します。
シグネチャ:
Copied!1SQRT(Column e)
TAN説明: 指定された値の正接を計算します。
シグネチャ:
Copied!1TAN(Column e)
TANH説明: 指定された値の双曲線正接を計算します。
シグネチャ:
Copied!1TANH(Column e)
TODEGREES説明: ラジアン単位の角度を、ほぼ等しい度単位の角度に変換します。
シグネチャ:
Copied!1TODEGREES(Column e)
TORADIANS説明: 度で表された角度を、ほぼ等価なラジアンで表された角度に変換します。
シグネチャ:
Copied!1TORADIANS(Column e)
| 関数 | 説明 |
|---|---|
| COALESCE | null ではない最初の列を返します。すべての入力が null の場合は null を返します。 |
| ISNULL | 列が null である場合に限り true を返します。 |
| NULLIF | 両方の引数が等しい場合は null を返し、それ以外の場合は最初の引数を返します。 |
COALESCE説明: null ではない最初の列を返します。すべての入力が null の場合は null を返します。
シグネチャ:
Copied!1COALESCE(Column... e)
ISNULL説明: 列が null である場合に限り true を返します。
シグネチャ:
Copied!1ISNULL(Column e)
NULLIF説明: 両方の引数が等しい場合は null を返し、それ以外の場合は最初の引数を返します。
シグネチャ:
Copied!1NULLIF(Column l, Column r)
| 関数 | 説明 |
|---|---|
| ARRAY | 新しい配列列を作成します。 |
| ARRAY_CONTAINS | 配列に値が含まれる場合に true を返します。 |
| EXPLODE | 指定された配列列またはマップ列の各要素に対して、新しい行を作成します。 |
| MAP | 新しいマップ列を作成します。 |
| POSEXPLODE | 指定された配列列またはマップ列の各要素に対して、その位置を含む新しい行を作成します。 |
| SIZE | 配列またはマップの長さを返します。 |
| SORT_ARRAY | 指定された列の入力配列を昇順または降順に並べ替えます。 |
| STRUCT | 新しい構造体列を作成します。 |
ARRAY説明: 新しい配列列を作成します。
シグネチャ:
Copied!1ARRAY(Column... cols)
ARRAY_CONTAINS説明:
配列に value が含まれる場合に true を返します。
シグネチャ:
Copied!1ARRAY_CONTAINS(Column column, Object value)
EXPLODE説明: 指定された配列列またはマップ列の各要素に対して、新しい行を作成します。
シグネチャ:
Copied!1EXPLODE(Column e)
MAP説明: 新しいマップ列を作成します。
シグネチャ:
Copied!1MAP(Column... cols)
POSEXPLODE説明: 指定された配列列またはマップ列の各要素に対して、その位置を含む新しい行を作成します。
シグネチャ:
Copied!1POSEXPLODE(Column e)
SIZE説明: 配列またはマップの長さを返します。
シグネチャ:
Copied!1SIZE(Column e)
SORT_ARRAY説明:
配列要素の自然順序に従って、指定された列の入力配列を昇順または降順に並べ替えます。並べ替えのデフォルトは昇順です。ただし、asc が false に設定されている場合は降順になります。
シグネチャ:
Copied!1SORT_ARRAY(Column e)SORT_ARRAY(Column e, boolean asc)
STRUCT説明: 新しい構造体列を作成します。
シグネチャ:
Copied!1STRUCT(Column... cols)
| 関数 | 説明 |
|---|---|
| LAG | 現在の行から offset 行前の値を返します。現在の行より前の行数が offset 未満の場合は null を返します。 |
| LEAD | 現在の行から offset 行後の値を返します。現在の行より後の行数が offset 未満の場合は null を返します。 |
LAG説明:
ウィンドウ関数:現在の行から offset 行前の値を返します。現在の行より前の行数が offset 未満の場合は null を返します。たとえば、オフセットが1の場合、ウィンドウパーティション内の任意の位置で、前の行を返します。
シグネチャ:
Copied!1LAG(Column e, int offset)LAG(Column e, int offset, Object defaultValue)
LEAD説明:
ウィンドウ関数:現在の行から offset 行後の値を返します。現在の行より後の行数が offset 未満の場合は null を返します。
シグネチャ:
Copied!1LEAD(Column e, int offset)LEAD(Column e, int offset, Object defaultValue)
| 関数 | 説明 |
|---|---|
| CRC32 | バイナリ列の巡回冗長検査値を計算し、その値を bigint として返します。 |
| GREATEST | null 値を除外し、値のリストの最大値を返します。 |
| HASH | 指定された列のハッシュコードを計算し、結果を int 列として返します。 |
| HEX | 指定された列の16進数値を計算します。 |
| ISNAN | 列が NaN である場合に限り true を返します。 |
| 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!1CRC32(Column e)
GREATEST説明: null 値を除外し、値のリストの最大値を返します。「>」演算子を使用して値を比較します。この関数は少なくとも2個のパラメーターを取ります。すべてのパラメーターが null の場合に限り null を返します。
シグネチャ:
Copied!1GREATEST(Column... exprs)
HASH説明: 指定された列のハッシュコードを計算し、結果を int 列として返します。
シグネチャ:
Copied!1HASH(Column... cols)
HEX説明:
指定された列の16進数値を計算します。column のデータ型が int または binary の場合、数値を16進数形式の文字列として返します。column のデータ型が string の場合、各文字を16進数表現に変換し、結果の文字列を返します。
シグネチャ:
Copied!1HEX(Column column)
ISNAN説明: 列が NaN である場合に限り true を返します。
シグネチャ:
Copied!1ISNAN(Column e)
LEAST説明: null 値を除外し、値のリストの最小値を返します。「<」演算子を使用して値を比較します。この関数は少なくとも2個のパラメーターを取ります。すべてのパラメーターが null の場合に限り null を返します。
シグネチャ:
Copied!1LEAST(Column... exprs)
MD5説明: バイナリ列の MD5 ダイジェストを計算し、その値を32文字の16進数文字列として返します。
シグネチャ:
Copied!1MD5(Column e)
NANVL説明:
col1 が NaN ではない場合は col1 を返し、col1 が NaN の場合は col2 を返します。
シグネチャ:
Copied!1NANVL(Column col1, Column col2)
NOT説明: ブール式を反転します(すなわち、NOT)。
シグネチャ:
Copied!1NOT(Column e)
SHA1説明: バイナリ列の SHA-1 ダイジェストを計算し、その値を40文字の16進数文字列として返します。
シグネチャ:
Copied!1SHA1(Column e)
SHA2説明: バイナリ列に対して SHA-2 ファミリーのハッシュ関数を計算し、その値を16進数文字列として返します。
シグネチャ:
Copied!1SHA2(Column e, int numBits)
WHEN説明: 条件のリストを評価し、複数の結果式の候補から1つを返します。
シグネチャ:
Copied!1WHEN(Column condition, Object value)