簡體   English   中英

Spark:將字符串轉換為日期

[英]Spark: convert string to Date

我正在使用 spark/scala 我有一個數據框。 有列有值的年/月/日,例如。 2020 年 9 月 2 日。 如何通過轉換為日期時間(yyyy-mm-dd)將列添加到同一數據框中? 我找到了如何將日期從字符串轉換為日期格式,但我找不到如何組合值並將其轉換為日期時間的解決方案。 感謝您的任何建議或提示

您可以使用to_date函數。

val df1 = Seq(
  ("2020/9/2"),
  ("2020/9/15"),
  ("2020/9/30")
).toDF("str")
val df2 = df1.withColumn("dt", to_date(col("str"), "y/M/d"))
df2.show()

我做了一些測試,我想你可以用我的例子來轉換日期。 我希望我能幫助你。

package com.jackpan.spark.examples

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types._
import org.apache.spark.sql.functions._
object SomeExamples {


  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder()
      .appName("SomeExamples")
      .getOrCreate()

    val dataDF = spark.createDataFrame(Seq(("2022", "12", "09"), ("2022", "12", "19"),
      ("2022", "12", "15"))).toDF("year", "month", "day")

    dataDF.withColumn("dateStr",
      concat(col("year"), lit("-"),col("month"), lit("-"), col("day")))
      .withColumn("date", to_date(col("dateStr"), "yyyy-MM-dd"))
      .show(false)


  }
}

這個函數顯示結果如下所示:

+----+-----+---+----------+----------+
|year|month|day|dateStr   |date      |
+----+-----+---+----------+----------+
|2022|12   |09 |2022-12-09|2022-12-09|
|2022|12   |19 |2022-12-19|2022-12-19|
|2022|12   |15 |2022-12-15|2022-12-15|
+----+-----+---+----------+----------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM