使用scala将字符串转换为Spark的时间戳
发布时间:2020-12-16 19:21:42 所属栏目:安全 来源:网络整理
导读:我有一个名为train的数据框,他有以下架构: root|-- date_time: string (nullable = true)|-- site_name: integer (nullable = true)|-- posa_continent: integer (nullable = true) 我想将date_timecolumn转换为timestamp并使用从date_timecolumn中提取的ye
我有一个名为train的数据框,他有以下架构:
root |-- date_time: string (nullable = true) |-- site_name: integer (nullable = true) |-- posa_continent: integer (nullable = true) 我想将date_timecolumn转换为timestamp并使用从date_timecolumn中提取的year值创建一个新列. 为了清楚起见,我有以下数据框: +-------------------+---------+--------------+ | 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 | +-------------------+---------+--------------+--------+ 解决方法
好吧,如果你想将date_timecolumn转换为timestamp并创建一个带有年份值的新列,那么就这样做:
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- angularjs – 角度和羯磨(茉莉花):我如何按类找到一个元素
- bash – 使用imagemagick如何将图像分割成几个单独的图像?
- Scala的新行为2.10
- 语法 – 为什么Scala自动应用thunk,有时?
- scala – “def someFun [_](a:Int)= a”,没有警告也没有错
- angularjs – 在$state.go之后没有调用离子控制器
- angular6 路由拼接查询参数如 ?id=1 并获取url参数
- scala – 为什么这个Iterable在映射后产生一个Set?
- bootstrap charisma 入门学习笔记
- Angular2中嵌套的ngFor循环的计数器