Spark SQL 时间格式处理

初始化Spark Sql

package pbcp_2023.clear_dataimport org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions.{current_date, current_timestamp}object twe_2 {def main(args: Array[String]): Unit = {
//新建SparkConfval con = new SparkConf().setMaster("local[*]").setAppName("one")//设置权限System.setProperty("HADOOP_USER_NAME", "root")
//新建Spark Sqlval sc = new SparkSession.Builder().config(con).enableHiveSupport().getOrCreate()import sc.implicits._val list = List("date").toDF()}}

1.current_date和current_timestamp 

current_date:取得当前日期

current_timestamp: 取得当期时间日期

   import sc.implicits._val list = List("date").toDF()
//    current_date 当前日期
//    current_timestamp 当前时间日期list.withColumn("current_date(日期)",current_date()).withColumn("current_timestamp",current_timestamp())

2.获取各种时间格式 

  1. current_timestamp(): 这个函数用于获取当前的日期和时间戳。
  2. year(col("local_date")): 这个函数会提取出"local_date"列中的年份。
  3. month(col("local_date")): 这个函数会提取出"local_date"列中的月份。
  4. quarter(col("local_date")): 这个函数会根据"local_date"列中的日期信息,将日期划分为哪个季度。
  5. weekofyear(col("local_date")): 这个函数会提取出"local_date"列中该年度的第几周。
  6. dayofmonth(col("local_date")): 这个函数会提取出"local_date"列中该月的第几天。
  7. dayofyear(col("local_date")): 这个函数会提取出"local_date"列中该年的第几天。
  8. hour(col("local_date")): 这个函数会提取出"local_date"列中的小时数。
  9. minute(col("local_date")): 这个函数会提取出"local_date"列中的分钟数。
  10. second(col("local_date")): 这个函数会提取出"local_date"列中的秒数。

 3.时间格式之间的转换--from_unixtime 和 unix_timestamp

 函数:

list2.withColumn("new_date",from_unixtime(unix_timestamp("[要转换的列名]","[要转换的列的格式]"),"[要转换为的格式]").as("date") ).show()

1.from_unixtime 函数通常用于将Unix时间戳转换为日期和时间格式。它接受一个Unix时间戳作为输入,并返回一个表示特定日期和时间的字符串。


2.unix_timestamp函数通常用于将日期和时间转换为Unix时间戳。它接受一个日期和时间作为输入,并返回一个表示该日期和时间的Unix时间戳。

理解是先用unix_timestamp将指点格式转换为时间戳,再用from_unixtime将时间戳转换为你想要的时间格式!所以这两个一般是配合使用的

实例:

    //加入题目要求将 yyyyMMdd 格式数据转换成 yyyy-MM-dd HH:mm:ddval list2 = List("20231125").toDF("date")  //初始化列list2.withColumn("new_date",from_unixtime(unix_timestamp(col("date"),"yyyyMMdd"),"yyyy-MM-dd HH:mm:ss").as("date") ).show()

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/216965.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

升级python后sudo apt-get update报错

sudo apt-get update 报错: sh: /usr/lib/cnf-update-db: /usr/bin/python3.7.5: bad interpreter: No such file or directory Reading package lists... Done E: Problem executing scripts APT::Update::Post-Invoke-Success if /usr/bin/test -w /var/lib/c…

Flash Attention:高效注意力机制的突破与应用

注意力机制彻底改变了自然语言处理和深度学习领域。它们允许模型在执行机器翻译、语言生成等任务时专注于输入数据的相关部分。 在这篇博客[1]中,我们将深入研究被称为“Flash Attention”的注意力机制的突破性进展。我们将探讨它是什么、它是如何工作的&#xff0c…

VMware虚拟机安装华为OpenEuler欧拉系统

首先去欧拉官方网站下载openEuler的安装镜像: openEuler下载 | 欧拉系统ISO镜像 | openEuler社区官网 我下载的是最新的23.03长期维护版本,架构选择x86_64。 创建新虚拟机:选择典型配置,点击下一步:选择下载的镜像文…

Google hacking语法

Google hacking语法 文章目录 Google hacking语法site:inurl:intitle:filetypecacheintext注意 site: 搜索子域 跟域名site:www.baidu.com 定位 跟语言 site: jp inurl: 用于在特定url链接中搜索网站信息 inurl:login intitle: 使用intitle:指令返回页面标题中包含关键…

【Redis基础】Redis安装及管理详细教程

✅作者简介:大家好,我是小杨 📃个人主页:「小杨」的csdn博客 🐳希望大家多多支持🥰一起进步呀! 1,UBuntu安装Redis 1,使用su命令切换到root用户 su2,使用se…

Leetcode—58.最后一个单词的长度【简单】

2023每日刷题&#xff08;四十&#xff09; Leetcode—58.最后一个单词的长度 实现代码 int lengthOfLastWord(char* s) {int len strlen(s);int left 0, right 0;if(len 1) {return 1;}while(right < len) {if(right 1 < len) {if(s[right] && s[righ…

Visual Studio 中文注释乱码解决方案

在公司多人开发项目中经常遇到拉到最新代码&#xff0c;发现中文注释都是乱码&#xff0c;很是emjoy..... 这是由于编码格式不匹配造成的&#xff0c;如果你的注释是 UTF-8 编码&#xff0c;而文件编码是 GBK 或者其他编码&#xff0c;那么就会出现乱码现象。一般的解决办法是…

5.1 Windows驱动开发:判断驱动加载状态

在驱动开发中我们有时需要得到驱动自身是否被加载成功的状态&#xff0c;这个功能看似没啥用实际上在某些特殊场景中还是需要的&#xff0c;如下代码实现了判断当前驱动是否加载成功&#xff0c;如果加载成功, 则输出该驱动的详细路径信息。 该功能实现的核心函数是NtQuerySys…

搭建Linux环境 云服务器指南

我们要学习Linux的相关知识&#xff0c;必须搭建Linux环境 这里有三种方式&#xff1a; 这篇文章我们介绍一下云服务器的购买 购买云服务器 我们以腾讯云为例, 其他的服务器厂商也是类似 云服务器或轻量级应用服务器都是可以的&#xff0c;我们以轻量级应用服务器为例 1.进入…

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用 HarmonyOS,作为一款全场景分布式操作系统,为了推动更广泛的应用开发,采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript(TS)的基础上发展而来,为HarmonyOS提供了丰富的应用开发工具,使开…

VRRP的交换机VRRP主备配置例子

拓朴如下&#xff1a; 主要配置如下&#xff1a; [S1] vlan batch 10 20 # interface Vlanif10ip address 10.1.1.1 255.255.255.0vrrp vrid 1 virtual-ip 10.1.1.254vrrp vrid 1 priority 200vrrp vrid 1 preempt-mode timer delay 20 # interface Vlanif20ip address 13.1.1…

高级搜索-线段树[C/C++]

线段树 文章目录 线段树前言一、线段树的定义二、线段树的结构与建立2..1 节点定义2.2 递归建树2.3 静态数组空间的解释 三、线段树的操作3.1 单点修改3.2 单点查询3.3 区间查询3.3 区间修改 四、动态开点线段树递增分配器 前言 对于求数组区间和我们可以处理出前缀和后可以在…