我想获取两个日期之间的月数,我正在从 csv 文件读取开始日期和结束日期。
id startDate endDate
100 5/1/2016 5/1/2017
200 5/2/2016 5/1/2017
300 5/2/2016 5/1/2017
我的输出应该如下所示:
id startDate endDate res
100 5/1/2016 5/1/2017 12
200 5/2/2016 5/1/2017 11
300 5/3/2016 5/1/2017 10
请让我知道我的代码有什么问题
val data = spark.read.option("header", "true").csv("sample.csv");
val result = data.withColumn("res", withColumn("Months", ChronoUnit.MONTHS.between(startDate ,endDate)).show()
最佳答案
- 将列转换为日期数据类型。
- 您可以使用 SQL datediff 函数。
语法:
val dt = sqlcontext.sql("SELECT DATEDIFF(month, start_date, end_date) AS DateDiff from relation")
您可以引用以下链接获取 datediff:Datediff
这是一个类似的问题:stackoverflow
关于scala - 如何获取开始日期和结束日期之间的月数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48376131/