spark dataframe的时间类型和String类型转化 | 您所在的位置:网站首页 › java中将日期转化为字符串的函数是什么 › spark dataframe的时间类型和String类型转化 |
spark sql中的时间转换函数是调用Hive来进行操作,所以spark sql和hql的用法是一致的。
hive中的时间格式规定为:
默认格式是 yyyy-MM-dd HH:mm:ss yyyy 年 可简化为yy MM 月 可简化为M dd 日 可简化为d HH 小时 可简化为H mm 分钟 可简化为m ss 秒 可简化为s 其中,除了秒大小写 通用外, 其他计时单位 大小写不通用 如果写错 则输出 null。 本次介绍三个函数分别是: 1.to_date(列名, ‘yyyy/MM/dd HH:mm:ss’) 返回 Date类型将string类型字段转化为date 标准格式为"yyyy-MM-dd"(spark的date格式精确到天) 其中"yyyy/MM/dd HH:mm:ss" 为列数据本身的格式 可以不符合常见的时间定义格式 如 注 : 无论你写不写 时分秒 格式,spark中的date格式 都精确到分钟 即 我的输入为 2020~10/10 10:10:10 经过to_date后 变成 2020-10-10 具体可参考下文中的例子 2.date_format(列名, ‘yyyy/MM/dd HH:mm:ss’) 返回String类型将时间标准格式按照自定义输入格式进行转化。若包含 时分秒 则以0代替。 输入类型可以自己定义,如"yyyy=MM=dd HH/mm:ss" 3.to_timestamp(列名) 返回Timestamp类型将标准时间格式(yyyy-MM-dd)数据(既可以是String类型,也可以是Date类型) 转化为标准时间戳类型:“yyyy-MM-dd HH-mm-ss” 没有时分秒 则自动补0 例: import spark.implicits._ import org.apache.spark.sql.functions._ import org.apache.spark.sql.types._ import org.apache.spark.sql.DataFrame var data = Seq( ("0", "ming", "tj","2019~09-06 17:15:15", "2002"), ("0", "haha", "hegang","2019~09-08 15:15:15", "10010") ).toDF("label", "name", "live","START_TIME", "AMOUNT") data.show()构建表data1, 时间格式为标准格式,类型为String: 参考资料: 1.https://www.cnblogs.com/mylittlecabin/p/11692363.html 2.https://stackoverflow.com/questions/40763796/convert-date-from-string-to-date-format-in-dataframes 3.https://www.nuomiphp.com/eplan/29850.html 4.https://stackoverflow.com/questions/40763796/convert-date-from-string-to-date-format-in-dataframes 5.https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions 6.https://www.jianshu.com/p/a87ac9f827e4 7.https://cloud.tencent.com/developer/ask/225235 8.https://blog.csdn.net/qq_33283716/article/details/81043264 |
CopyRight 2018-2019 实验室设备网 版权所有 |