バツイチとインケンのエンジニアブログ
プログラムやプログラムじゃないこと

Apache Spark: SparkSQLリファレンス〜関数編・日付・時刻関数〜

2015-11-04
書いた人 : バツイチ
カテゴリ : Spark | タグ : Apache Spark, SQL, リファレンス

SparkSQLリファレンス第四部、関数編・日付・時刻関数です。

日付・時刻関数

data_addなど日付・時刻型関連の関数です。

関数 内容 ver.
add_months add_months(startDate: Column, numMonths: Int)
startDate に numMonths を加算した日付を返します。

sql:

select ( startDate, numMonths ) from ... 

DataFrame:

df.select( ( $"startDate", $"numMonths" ) ) 

例) startDate = “2015-10-31 01:20:50”, numMonths = 1の場合、”2015-11-30 01:20:50″が返ります。

1.5.0
current_date current_date()
現在日付をDate型で返します。

sql:

select current_date() from ... 

DataFrame:

df.select( current_date() ) 
1.5.0
current_timestamp current_timestamp()
現在時刻をタイムスタンプ型で返します。

sql:

select current_timestamp() from ... 

DataFrame:

df.select( current_timestamp() ) 
1.5.0
date_format date_format(dateExpr: Column, format: String)
Date型、Timestamp型、String型を日付形式にフォーマットした文字列を返します。
書式はjava.text.SimpleDateFormatに従います。

sql:

select
  date_format( dateExpr, format )
from ... 

DataFrame:

df.select(
  date_format( $"dateExpr", $"format" ) ) 

例) dateExpr = “2015-10-31 01:20:50”, format = “yyyy/MM/dd HH:mm:ss”の場合、”2015/10/31 01:20:50″が返ります。

1.5.0
date_add date_add(start: Column, days: Int)
日付をstartに加算した日にちを返します。

sql:

select date_add( start, days ) from ... 

DataFrame:

df.select( date_add( $"start", $"days" ) ) 

例) start = “2015-10-31 01:20:50”, days = 2の場合、”2015-11-03 01:20:50″が返ります。

1.5.0
date_sub date_sub(start: Column, days: Int)
日付をstartから減算した日にちを返します。

sql:

select date_sub( start, days ) from ... 

DataFrame:

df.select( date_sub( $"start", $"days" ) ) 

例) start = “2015-10-31 01:20:50”, days = 2の場合、”2015-10-29 01:20:50″が返ります。

1.5.0
datediff datediff(end: Column, start: Column)
startからendまでの日数を返します。

sql:

select datediff( end, start ) from ... 

DataFrame:

df.select( datediff( $"end", $"start" ) ) 

例) start = “2015-10-31”, end = “2015-11-10″の場合、10が返ります。

1.5.0
year year(e: Column)
Date型、Timestamp型、String型から年を抽出し、Integer型で返します。

sql:

select year( e ) from ... 

DataFrame:

df.select( year( $"e" ) ) 

例) e = “2015-10-31″の場合、2015が返ります。

1.5.0
quarter quarter(e: Column)
Date型、Timestamp型、String型から4半期を抽出し、Integer型で返します。

sql:

select quarter( e ) from ... 

DataFrame:

df.select( quarter( $"e" ) ) 

例) e = “2015-10-31″の場合、4が返ります。

1.5.0
month month(e: Column)
Date型、Timestamp型、String型から月を抽出し、Integer型で返します。

sql:

select month( e ) from ... 

DataFrame:

df.select( month( $"e" ) ) 

例) e = “2015-10-31″の場合、10が返ります。

1.5.0
dayofmonth dayofmonth(e: Column)
Date型、Timestamp型、String型から日付がその月の何日目かを抽出し、Integer型で返します。
つまり、日を抽出して返す形になります。

sql:

select dayofmonth( e ) from ... 

DataFrame:

df.select( dayofmonth( $"e" ) ) 

例) e = “2015-10-31″の場合、31が返ります。

1.5.0
dayofyear dayofyear(e: Column)
Date型、Timestamp型、String型から日付がその年の何日目かを抽出し、Integer型で返します。

sql:

select dayofyear( e ) from ... 

DataFrame:

df.select( dayofyear( $"e" ) ) 

例) e = “2015-12-31″の場合、365が返ります。

1.5.0
hour hour(e: Column)
Date型、Timestamp型、String型から時刻を抽出し、Integer型で返します。

sql:

select hour( e ) from ... 

DataFrame:

df.select( hour( $"e" ) ) 

例) e = “2015-10-31 16:30:00″の場合、16が返ります。

1.5.0
last_day last_day(e: Column)
指定された日付の月の最終日を返します。

sql:

select last_day( e ) from ... 

DataFrame:

df.select( last_day( $"e" ) ) 

例) e = “2015-07-27″の場合、”2015-07-31″が返ります。

1.5.0
minute minute(e: Column)
Date型、Timestamp型、String型から分を抽出し、Integer型で返します。

sql:

select minute( e ) from ... 

DataFrame:

df.select( minute( $"e" ) ) 

例) e = “2015-10-31 16:30:00″の場合、30が返ります。

1.5.0
months_between months_between(date1: Column, date2: Column)
date1とdate2の間の月数を返します。

sql:

select
  months_between( date1, date2 )
from ... 

DataFrame:

df.select(
  months_between( $"date1", $"date2" ) ) 

例) date1 = “2015-09-02”, date2 = “2015-08-01″の場合、1.032258065( =1+(1/31) )が返ります。

1.5.0
next_day next_day(date: Column, dayOfWeek: String)
指定された日付以降で指定された曜日のうち最初の日を返します。
dayOfWeekに指定できるのは
“Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”, “Sun”
のいずれかです。

sql:

select next_day( date, dayOfWeek ) from ... 

DataFrame:

df.select( next_day( $"date", $"dayOfWeek" ) ) 

例) date = “2015-10-31”, dayOfWeek = “Sunday” の場合、”2015-11-01″が返ります。

1.5.0
second second(e: Column)
Date型、Timestamp型、String型から秒を抽出し、Integer型で返します。

sql:

select second( e ) from ... 

DataFrame:

df.select( second( $"e" ) ) 

例) e = “2015-10-31 16:30:00″の場合、0が返ります。

1.5.0
weekofyear weekofyear(e: Column)
Date型、Timestamp型、String型から週数を抽出し、Integer型で返します。

sql:

select weekofyear( e ) from ... 

DataFrame:

df.select( weekofyear( $"e" ) ) 

例) e = “2015-02-10″の場合、7が返ります。

1.5.0
from_unixtime from_unixtime(ut: Column)
from_unixtime(ut: Column, f: String)
指定されたUNIX時刻(1970-01-01 00:00:00 UTC)からの経過秒を文字列に変換して返します。
第2引数にフォーマットを渡すこともできます。
省略された場合は”yyyy-MM-dd HH:mm:ss”が使用されます。

sql:

select from_unixtime( e ) from ... 

DataFrame:

df.select( from_unixtime( $"e" ) ) 

例) e = “1329568603”の場合、”2012-02-18 21:36:43″が返ります。

1.5.0
unix_timestamp unix_timestamp()
unix_timestamp(s: Column)
unix_timestamp(s: Column, p: String)
引数が指定されない場合、現在のUNIX時刻が返ります。
引数が指定された場合は、”yyyy-MM-dd HH:mm:ss”形式の文字列をUNIX時刻に変換して返します。

sql:

select unix_timestamp( s ) from ... 

DataFrame:

df.select( unix_timestamp( $"s") ) 

例) s = “2012-02-18 21:36:43″の場合、1329568603 が返ります。

1.5.0
to_date to_date(e: Column)
日付型に変換します。

sql:

select to_date( e ) from ... 

DataFrame:

df.select( to_date( $"e" ) ) 
1.5.0
trunc trunc(date: Column, format: String)
指定された単位で切り捨てを行った日付を返します。
formatに ‘year’, ‘yyyy’, ‘yy’ が指定された場合は、年単位で切り捨てます。
formatに ‘month’, ‘mon’, ‘mm’ が指定された場合は、月単位で切り捨てます。

sql:

select trunc( date, format ) from ... 

DataFrame:

df.select( trunc( $"date", $"format" ) ) 

例) date = “2015-10-31 16:30:00”, format = “year” の場合、”2015-01-01 00:00:00″が返ります。

1.5.0
from_utc_timestamp from_utc_timestamp(ts: Column, tz: String)
UTCのタイムスタンプをtzで指定されたタイムゾーンに変換して返します。

sql:

select
  from_utc_timestamp ( ts, tz )
from ... 

DataFrame:

df.select(
  from_utc_timestamp( $"ts", $"tz" ) ) 

例) ts = “2015-10-31 07:30:00”, tz = “JST” の場合、”2015-10-31 16:30:00″が返ります。

1.5.0
to_utc_timestamp to_utc_timestamp(ts: Column, tz: String)
指定されたタイムゾーンのタイムスタンプをUTCに変換して返します。

sql:

select
  to_utc_timestamp( ts, tz )
from ... 

DataFrame:

df.select(
  to_utc_timestamp( $"ts", $"tz" ) ) 

例) ts = “2015-10-31 16:30:00”, tz = “JST” の場合、”2015-10-31 07:30:00″が返ります。

1.5.0

構文

  • SELECT .. FROM …
  • WHERE
  • JOIN
  • ORDER BY
  • LIMIT
  • GROUP BY
  • HAVING
  • CUBE
  • ROLLUP

演算子

  • 比較演算子
  • bit演算子
  • 算術演算子
  • 集合演算子
  • 論理演算子

関数

  • 文字列関数
  • 変換関数
  • 数学関数
  • 日付・時刻関数
  • 集計関数
  • Window関数
  • その他の関数

宜しければこちらの動画もどうぞー

Apache Spark part5 Zeppelinを使ってデータ分析の初歩

スクリーンショット 0027-10-29 12.52.19

https://www.youtube.com/watch?v=TUQESh3NUlc

Apache Spark part6 Zeppelinで機械学習

スクリーンショット 2015-10-30 9.26.56

https://www.youtube.com/watch?v=moZ9WeNsWgY

リクルートのポンパレデータを使って最小二乗法による回帰分析を行っています。

このエントリーをはてなブックマークに追加
Tweet

← Mac に ipython notebook と Sparkをインストール
よく分かるかもしれないGit動画 →

 

最近書いた記事

  • Ryzen7 3800XT でmini ITXオープンフレームPCを作る
  • Pythonで機械学習入門 競馬予測
  • HP ENVY 15 クリエイターモデルレビューとRAID0解除
  • JRA-VAN データラボを使って、競馬データを収集する
  • Surface Pro 3 にubuntu18.04を入れる

カテゴリー

  • Android
  • Apache Flink
  • API
  • AWS
  • bazel
  • BigQuery
  • Cassandra
  • Docker
  • Druid
  • Elasticsearch
  • Git
  • Golang
  • gradle
  • HDFS
  • JavaScript
  • jvm
  • Linux
  • MongoDB
  • MySQL
  • Nginx
  • Nodejs
  • PaaS
  • PHP
  • Python
  • RabbitMQ
  • Raspberry Pi
  • React Native
  • Redis
  • Riak
  • rust
  • scala
  • Scheme
  • SEO
  • solr
  • Spark
  • spray
  • Sublime Text
  • Swift
  • Tableau
  • Unity
  • WebIDE
  • Wordpress
  • Youtube
  • ひとこと
  • カンファレンス
  • スケジューラ
  • マイクロマウス
  • 広告
  • 技術じゃないやつ
  • 株
  • 機械学習
  • 競馬
  • 自作キーボード
  • 自然言語処理

アーカイブ

  • 2021年4月
  • 2021年2月
  • 2021年1月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年9月
  • 2018年5月
  • 2018年3月
  • 2018年2月
  • 2017年9月
  • 2017年8月
  • 2017年6月
  • 2017年4月
  • 2017年3月
  • 2017年1月
  • 2016年10月
  • 2016年9月
  • 2016年8月
  • 2016年6月
  • 2016年5月
  • 2016年4月
  • 2016年3月
  • 2016年2月
  • 2016年1月
  • 2015年12月
  • 2015年11月
  • 2015年10月
  • 2015年9月
  • 2015年8月
  • 2015年6月
  • 2015年5月
  • 2015年2月
  • 2015年1月
  • 2014年12月
  • 2014年11月
  • 2014年9月
  • 2014年6月
  • 2014年5月
  • 2014年3月
  • 2014年2月
  • 2014年1月
  • 2013年12月
  • 2013年11月
  • 2013年10月
  • 2013年9月
  • 2013年8月

書いた人

  • バツイチちゃん
  • インケンくん

このブログについて

エンジニアとしての考え方が間逆な2人がしょーもないこと書いてます。

バツイチ

アイコン

IT業界で働くエンジニアです。名前の通りバツイチです。
理論や抽象的概念が好きだけど人に説明するのが下手。

インケン

アイコン

バツイチちゃんと同じ業界で働いています。
理論とか開発手法とかは正直どうでもよくて、
生活する上で役に立つことに使いたい

Copyright 2025 バツイチとインケンのエンジニアブログ