6
私は、次のスキーマとデータフレームを持っている:文字列から日時を取得するには?
root
|-- date : string (nullable = true)
値は201605250000
のように見えます。この文字列から日付、時間、mmをどのように取り出すことができますか?
私は、次のスキーマとデータフレームを持っている:文字列から日時を取得するには?
root
|-- date : string (nullable = true)
値は201605250000
のように見えます。この文字列から日付、時間、mmをどのように取り出すことができますか?
解析文字列:timestmapする
val unix = unix_timestamp($"date", "yyyyMMddHHmm").alias("unix")
変換:時間を取得するために
val dt = ts.cast("date").alias("dt")
使用hour
/minute
:日付を取得するためにdate
へ
val ts = unix.cast("timestamp").alias("ts")
が出演
val h = hour(ts).alias("h")
val m = minute(ts).alias("m")
例:
import org.apache.spark.sql.functions._
val df = Seq((1L, "201605250000")).toDF("id", "date")
df.select($"*", unix, ts, dt, h, m).show
// +---+------------+----------+--------------------+----------+---+---+
// | id| date| unix| ts| dt| h| m|
// +---+------------+----------+--------------------+----------+---+---+
// | 1|201605250000|1464127200|2016-05-25 00:00:...|2016-05-25| 0| 0|
// +---+------------+----------+--------------------+----------+---+---+
注:1.5使用unix.cast("double").cast("timestamp")