📜  spark 从日期开始获取年份 (1)

📅  最后修改于: 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()函数,我们可以轻松地从日期开始获取年份。