在 spark scala Velocity 中添加日期字段的天数
Add number of days to date field in spark scala Velocity
谁能告诉我如何将天数添加到现有的 days.Example:我想在开始日期上添加 30 天并且我想打印出来。
我正在尝试这个
set( $pageParameters.wiEndDate = ($pageParameters.wiStartDate+ 30))
但它不起作用。谁能告诉我有没有 API 或如何获得?
谢谢
如果您想在 DateType
字段中添加天数,您可以使用函数 org.apache.spark.sql.functions._date_add(column, no of days)
如果需要,您可以在现有 DateType
字段中添加一个月
org.apache.spark.sql.functions._add_months()
这里有一个简单的例子让你明白。
val spark =
SparkSession.builder().master("local").appName("test").getOrCreate()
import spark.implicits._
val data = spark.sparkContext.parallelize(
Seq((0, "2016-01-1"),
(1, "2016-02-2"),
(2, "2016-03-22"),
(3, "2016-04-25"),
(4, "2016-05-21"),
(5, "2016-06-1"),
(6, "2016-03-21"))
).toDF("id", "date")
//Cast to date type
val data1 = data.withColumn("date", $"date".cast(DateType))
//add 1 month in each row
data.withColumn("date", add_months($"date", 1)).show
//add 30 days in each row
data.withColumn("date", date_add($"date", 30)).show
谁能告诉我如何将天数添加到现有的 days.Example:我想在开始日期上添加 30 天并且我想打印出来。 我正在尝试这个
set( $pageParameters.wiEndDate = ($pageParameters.wiStartDate+ 30))
但它不起作用。谁能告诉我有没有 API 或如何获得? 谢谢
如果您想在 DateType
字段中添加天数,您可以使用函数 org.apache.spark.sql.functions._date_add(column, no of days)
如果需要,您可以在现有 DateType
字段中添加一个月
org.apache.spark.sql.functions._add_months()
这里有一个简单的例子让你明白。
val spark =
SparkSession.builder().master("local").appName("test").getOrCreate()
import spark.implicits._
val data = spark.sparkContext.parallelize(
Seq((0, "2016-01-1"),
(1, "2016-02-2"),
(2, "2016-03-22"),
(3, "2016-04-25"),
(4, "2016-05-21"),
(5, "2016-06-1"),
(6, "2016-03-21"))
).toDF("id", "date")
//Cast to date type
val data1 = data.withColumn("date", $"date".cast(DateType))
//add 1 month in each row
data.withColumn("date", add_months($"date", 1)).show
//add 30 days in each row
data.withColumn("date", date_add($"date", 30)).show