我试着从一个文件中提取一个月的数据,然后处理它。基本上,我需要每个月提取数据并进行一些转换。因为我的作业每天都在运行,所以我想利用它填充当月的数据,直到运行日期。
我有两种方法:
方法1:
仅填写上月的数据。例如,如果我的当前日期或运行日期是 May
,我将填充 April
. 这可以通过将月份从 current_date()
和减法 1
从它那里。类似于以下内容: df.filter(month(to_date(col("startDate")))===month(to_date(current_date())-1))
这只是一个想法。这段代码不会达到我想做的,因为我是减去月部分单独和不考虑 Year
部分。
但在这种情况下,我的工作将每天运行,以填充整个月的相同数据。这样做没有意义。
方法2:
如果我现在的约会是 2020-05-27
,我想从 2020-05-01 to 2020-05-26
. 如果我现在的日期是 2020-06-01
,它应该填充来自 2020-05-01 to 2020-05-31
.
我想实现方法2。我唯一能想到的办法就是写几封信 Case
语句来检查日期并相应地填充它。
有人能分享一下吗。有什么简单的方法吗。
我正在使用 Spark 1.5
1条答案
按热度按时间kjthegm61#
检查这是否有用-
1. 加载测试数据
输出-
2. 基于当前日期创建筛选列
3. 检查当前数据是否在月份之间
输出-
4. 检查当前数据何时为每月第一天
输出-