注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
F.date_add(start, days)
F.date_sub(start, days)
F.add_months(start, months)
F.datediff(end, start)
F.months_between(date1, date2)
F.last_day(date)
F.next_day(date, dayOfWeek)
F.year(column)
F.month(column)
F.dayofmonth(column)
F.hour(column)
F.minute(column)
F.second(column)
F.quarter(column)
F.dayofyear(column)
F.weekofyear(column)
ここにクイックリファレンスを示します。
フォーマット | 例 |
---|---|
yyyy-MM-dd | 1997-01-31 |
yyyy-MM-dd HH:mm | 1997-01-31 23:59:59 |
日付フォーマットの文字列パターンは、Java クラス java.text.SimpleDateFormat に基づいています。完全なリファレンスは Date & Time Format Syntax Table で利用可能です。
F.to_date(column, format=None)
F.to_timestamp(column, format=None)
F.to_utc_timestamp(timestamp, tz)
F.unix_timestamp(timestamp=None, format='yyyy-MM-dd HH:mm:ss')
F.date_format(date, format)
F.from_unixtime(timestamp, format='yyyy-MM-dd HH:mm:ss')
F.from_utc_timestamp(timestamp, tz)
long
から timestamp
へのキャスト一部のシステムでは、タイムスタンプが long
データ型で、ミリ秒単位で格納されます。PySpark SQL では、タイムスタンプが秒単位で格納されます。タイムスタンプの long
バージョンを適切に timestamp
にキャストするには、1000 で割る必要があります。
Copied!1 2 3 4
# タイムスタンプをキャストする casted_timestamp = (F.col('timestamp') / 1000).cast("timestamp") df = df.withColumn("timestamp", casted_timestamp) # 1531860192661 => 2018年7月17日火曜日 20:43:12
また、明瞭さのために F.from_unixtime(timestamp)
も使用できます:
Copied!1 2 3 4 5
# 'timestamp'列をUnix時間から一般的な時間に変換します timestamp = F.from_unixtime(F.col('timestamp') / 1000) # データフレームに新しい'timestamp'列を追加(もしくは既存の列を更新)します df = df.withColumn("timestamp", timestamp)
long
からtimestamp
にキャストする際に、粒度が失われます。SQL では、秒のパーセンテージや小数を保存できません。
F.trunc(日付, 形式)
F.date_trunc(形式, タイムスタンプ)