gpt4 book ai didi

scala - 使用 Scala 将字符串转换为 Spark 的时间戳

转载 作者:行者123 更新时间:2023-12-04 10:23:56 27 4
gpt4 key购买 nike

我有一个名为 train 的数据框,他有以下架构:

root
|-- date_time: string (nullable = true)
|-- site_name: integer (nullable = true)
|-- posa_continent: integer (nullable = true)

我要投 date_time列到 timestamp并使用 year 创建一个新列从 date_time 中提取的值柱子。

需要明确的是,我有以下数据框:

+-------------------+---------+--------------+
| date_time|site_name|posa_continent|
+-------------------+---------+--------------+
|2014-08-11 07:46:59| 2| 3|
|2014-08-11 08:22:12| 2| 3|
|2015-08-11 08:24:33| 2| 3|
|2016-08-09 18:05:16| 2| 3|
|2011-08-09 18:08:18| 2| 3|
|2009-08-09 18:13:12| 2| 3|
|2014-07-16 09:42:23| 2| 3|
+-------------------+---------+--------------+

我想获得以下数据框:

+-------------------+---------+--------------+--------+
| date_time|site_name|posa_continent|year |
+-------------------+---------+--------------+--------+
|2014-08-11 07:46:59| 2| 3|2014 |
|2014-08-11 08:22:12| 2| 3|2014 |
|2015-08-11 08:24:33| 2| 3|2015 |
|2016-08-09 18:05:16| 2| 3|2016 |
|2011-08-09 18:08:18| 2| 3|2011 |
|2009-08-09 18:13:12| 2| 3|2009 |
|2014-07-16 09:42:23| 2| 3|2014 |
+-------------------+---------+--------------+--------+

最佳答案

好吧,如果你想将 datetime 列转换为时间戳并创建一个带有年份值的新列,那么就这样做:

import org.apache.spark.sql.functions.year

df
.withColumn("date_time", $"date_time".cast("timestamp")) // cast to timestamp
.withColumn("year", year($"date_time")) // add year column

关于scala - 使用 Scala 将字符串转换为 Spark 的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349473/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com