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

需求描述:

我现在有一个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.Date

val 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值