当前位置: 首页 > news >正文

数据处理生产环境_spark获取df列当前日期的前一天日期

需求描述:

我现在有一个dataframe,名为dfin,样例数据如下

a1_id_lxha2_PHtime
比亚迪_汉1232023-11-15 12:12:23
比亚迪_汉1252023-11-15 13:14:51
比亚迪_汉1232023-11-15 12:13:23
比亚迪_汉1262023-11-16 14:12:34
比亚迪_秦2312023-11-15 14:12:28
比亚迪_秦2342023-11-16 16:12:51
比亚迪_秦2312023-11-15 12:13:51
比亚迪_秦2312023-11-15 12:14:51

        现在我每天接入实时数据,保存在库里,时间为最近时间的两天数据,比如今天是20号,数据库里存的数据就是19号,20号的数据,现在我要进行跑批任务,将数据库里的19号的数据离线跑批进行部分逻辑处理后,增加的存入

代码

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
import java.text.SimpleDateFormat
import java.util.Dateval spark = SparkSession.builder.appName("DateSubtraction").getOrCreate()import spark.implicits._
//测试data,实际生产中我们接前序dataframe
//20231121_lxh
//https://blog.csdn.net/qq_52128187?type=blog
val data = Seq(("比亚迪_汉", 123, "2023-11-15 12:12:23"),("比亚迪_汉", 125, "2023-11-15 13:14:51"),("比亚迪_汉", 123, "2023-11-15 12:13:23"),("比亚迪_汉", 126, "2023-11-16 14:12:34"),("比亚迪_秦", 231, "2023-11-15 14:12:28"),("比亚迪_秦", 234, "2023-11-16 16:12:51"),("比亚迪_秦", 231, "2023-11-15 12:13:51"),("比亚迪_秦", 231, "2023-11-15 12:14:51")
)
//以此为例
val df = data.toDF("a1", "a2", "time")val dateFormat = new SimpleDateFormat("yyyy-MM-dd")
val currentDate = dateFormat.format(new Date())val dfinWithNewColumn = df.withColumn("date_subtracted", date_sub(to_date($"time"), 1))dfinWithNewColumn.show()
//后面在处理的话直接转为创建临时表或者再进行后续操作即可
//https://blog.csdn.net/qq_52128187?type=blog

输出结果

a1a2timedate_subtracted
比亚迪_汉1232023-11-15 12:12:232023-11-14 12:12:23
比亚迪_汉1252023-11-15 13:14:512023-11-14 13:14:51
比亚迪_汉1232023-11-15 12:13:232023-11-14 12:13:23
比亚迪_汉1262023-11-16 14:12:342023-11-15 14:12:34
比亚迪_秦2312023-11-15 14:12:282023-11-14 14:12:28
比亚迪_秦2342023-11-16 16:12:512023-11-15 16:12:51
比亚迪_秦2312023-11-15 12:13:512023-11-14 12:13:51
比亚迪_秦2312023-11-15 12:14:512023-11-14 12:14:5
http://www.lryc.cn/news/237605.html

相关文章:

  • 第四代智能井盖传感器,实时守护井盖位安全
  • 【前端知识】Node——文件流的读写操作
  • 解决证书加密问题:OpenSSL与urllib3的兼容性与优化
  • #gStore-weekly | gAnswer源码解析 调用NE模块流程
  • vscode 配置 lua
  • vscode设置代码模板
  • 用css实现原生form中radio单选框和input的hover已经focus的样式
  • uniapp:录音权限检查,录音功能
  • Rust开发——切片(slice)类型
  • 如何给shopify motion主题的产品系列添加description
  • 力扣刷题-二叉树-二叉树最小深度
  • 注解方式优雅的实现 Redisson 分布式锁
  • PHP/Laravel通过经纬度计算距离获取附近商家
  • grafana面板介绍
  • 实验三 循环结构程序设计(Python)
  • Flutter笔记:目录与文件存储以及在Flutter中的使用(上)
  • 注意了!申请流量卡时地址一定不要填写学校,不好下卡哦!
  • minio使用shell上传文件
  • LeetCode538. Convert BST to Greater Tree
  • iPaaS和RPA,企业自动化应该如何选择?
  • AI实践与学习1_Milvus向量数据库实践与原理分析
  • 3Dexcite deltgen 2022x 新功能
  • 代码随想录算法训练营第六十天 | LeetCode 84. 柱状图中最大的矩形
  • 【2023云栖】陈守元:阿里云开源大数据产品年度发布
  • Element UI 禁用数字输入框组件添加鼠标滚动事件
  • 担忧CentOS停服?KeyarchOS系统来支撑
  • 聚观早报 |联想集团Q2财季业绩;小鹏汽车Q3营收
  • SAP ABAP权限控制中常用TCODE
  • 云计算赛项容器云2023搭建
  • 11.1 文件拷贝移动与删除