Spark SQL 構文と式
次の表に、数値の Spark SQL 構文と式を示します。
| 関数 | 説明 | 例 |
|---|---|---|
ABS()
|
絶対値を計算します。 | ABS(-3.2) は 3.2 を返します |
CEIL()
|
指定された値の上限を計算します。 | CEIL(2.4) は 3 を返します |
EXP()
|
指定された値の指数を計算します。 | EXP(1) は 2.71828 を返します |
FLOOR()
|
指定された値の下限を計算します。 | FLOOR(4.6) は 4 を返します |
LOG()
|
指定された値の自然対数を計算します。 | LOG(1) は 0 を返します |
RAND()
|
U[0.0, 1.0]から独立性と同一分布 (i.i.d.) サンプルを持つランダムカラムを生成します。 | RAND() は [0.0,1.0] を返します |
ROUND()
|
カラム e の値を小数点以下 0 桁に四捨五入して返します。 | ROUND(2.4) は 2 を返します |
SQRT()
|
指定された浮動小数点値の平方根を計算します。 | SQRT(4) は 2 を返します |
次の表に、Spark SQL の構文と文字カラムの式を示します。
| 関数 | 説明 | 例 |
|---|---|---|
CONCAT()
|
複数の入力文字カラムを単一の文字カラムに連結します。 | CONCAT('a', 'b') は ab を返します |
INSTR(str, String substring)
|
指定された文字カラム内で部分文字列が最初に出現する位置を見つけます。 | INSTR('entre', 'e') は 1 を返します |
LOCATE(String substr, str, int pos)
|
部分文字列が最初に出現する位置を見つけます。 | LOCATE('e','entre', 2) は 5 を返します |
LOWER(str)
|
文字カラムを小文字に変換します。 | LOWER('Alpine') は alpine を返します |
UPPER(str)
|
文字カラムを大文字に変換します。 | UPPER('Alpine') は ALPINE を返します |
REVERSE(str)
|
文字カラムを反転し、新しい文字列として返します。 | REVERSE('foobar') は raboof を返します |
SUBSTRING(str, int pos, int len)
|
str が 文字列型の場合は pos を始点とする長さ len のサブストリングを、str がバイナリ型の場合は pos を始点とする長さ len のバイト配列のスライスを返します。 |
SUBSTRING('Alpine', 2, 2) は lp を返します |
TRIM(str)
|
指定した文字カラムの両端のスペースを削除します。 | TRIM(' a b ') は a b を返します |
LENGTH(str)
|
指定された文字カラムの長さを計算します。 | LENGTH('foobar') は 6 を返します |
TRANSLATE(src, String matchString, String replaceString)
|
src 内の任意の文字を replaceString 内の文字で翻訳します。 |
TRANSLATE('Alpine', 'Alp', 'F') は Fine を返します |
REGEXP_EXTRACT(e, String exp, int groupIdx)
|
指定された文字列から、Java 正規表現に一致する特定のグループを抽出します。 | REGEXP_EXTRACT('this:that', '(.*)\\:(.*)', 2) は that を返します |
REGEXP_REPLACE(e, String pattern, String replacement)
|
regexp に一致する、指定された文字列値のすべての部分文字カラムを rep に置き換えます。 | REGEXP_REPLACE("foo bar", "oo|ar|\\s", "") は fb を返します |
次の表に、Spark SQL の構文と日付/タイムスタンプの式を示します。
| 関数 | 説明 | 例 |
|---|---|---|
DAYOFMONTH()
|
指定された日付/タイムスタンプ/文字列から日付を整数として抽出します。 | DAYOFMONTH('2003-05-10') は 10 を返します |
HOUR()
|
指定された日付/タイムスタンプ/文字列から時間を整数として抽出します。 | HOUR('2003-10-12 15:02') は 15 を返します |
MINUTE()
|
指定された日付/タイムスタンプ/文字列から分を整数として抽出します。 | MINUTE('2003-10-04 05:12:23') は 12 を返します |
DATEDIFF( DATE_ADD(('datetime'), 2), 'datetime')
| 日付の差分を返します。 | DATEDIFF( DATE_ADD(('2012-10-17'), 2), '2012-10-17') は 2 を返します |
CAST(TO_DATE(datetime_column) AS STRING)
|
入力された日付を「yyyy-MM-dd」形式の文字列として返します。 | CAST(TO_DATE(2012-10-12) AS STRING) は '2012-10-12' を返します |
CAST(UNIX_TIMESTAMP('datetime_column') AS BIGINT)
|
ローカル Unix 時間を秒単位で返します。 | CAST(UNIX_TIMESTAMP('2003-01-29') AS BIGINT) は 1043827200 を返します |
|
ノート:
Spark SQL は、タイムスタンプの形式「 異なる |
||
以下に、Spark SQL の構文と条件式のリストを示します。
-
CASE WHEN LOWER(referring_url) LIKE 'www%.org%' THEN 'Non-Profit' ELSE 'Other' END -
CASE WHEN LOWER(referring_url) RLIKE '^www.*\\.org$' THEN 'Non-Profit' ELSE 'Other' END
詳細については、『Spark SQL ドキュメント』を参照してください。