📅  最后修改于: 2023-12-03 15:05:14.958000             🧑  作者: Mango
在Spark中,我们可以通过函数来获取日期(日期时间)中的年份,月份,日期等。在本主题中,我们将重点介绍如何从日期开始获取年份。
import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
object GetYearFromDate {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("Get Year from Date")
.master("local[*]")
.getOrCreate()
// 模拟数据
val data = Seq(
("2022-02-19"),
("2020-12-31"),
("2021-01-01"),
("2022-02-28")
)
val df = spark.createDataFrame(data).toDF("date")
df.show()
// 获取年份
val yearDF = df.select(year(to_date(col("date"))).as("year"))
yearDF.show()
}
}
首先,我们需要创建一个SparkSession,以便连接到Spark集群或本地模式。我们使用SparkSession创建一个DataFrame,该DataFrame包含日期列。
然后,我们使用Spark SQL的内置函数之一 - to_date()
来将日期字符串转换为日期类型。从中,我们使用year()
函数获取日期所属的年份。
最后,我们选择年份列,以便查看结果。
以下是程序运行的输出结果:
+----------+
| date|
+----------+
|2022-02-19|
|2020-12-31|
|2021-01-01|
|2022-02-28|
+----------+
+----+
|year|
+----+
|2022|
|2020|
|2021|
|2022|
+----+
我们可以看到,我们已经成功地从日期开始获取到年份。
在Spark中,我们可以使用很多内置函数来转换日期,获取各种日期时间信息等。通过使用to_date()
和year()
函数,我们可以轻松地从日期开始获取年份。