我有一个包含字符串数据的列,比如“2023-03- 13 T15:18:14+0700"。我的最终目标是将它转换为正确的日期格式,比如“2023-03-13 15:18:14"。最好将时间转换为GMT+7(我的位置),然后删除“T”和“+XXXX”部分。但如果太难或不可能做到,我只需要删除“T”和“+0700”,因为我的大部分数据都是“+0700”。
我在SOF上看了很多帖子,但是到目前为止都没有运气。例如,X1 E0 F1 X,X1 E1 F1 X,最接近的是X1 E2 F1 X,但是没有运气,因为它们的格式和我的有点不同。
下面是我从最新帖子中得到的:
object test extends App {
val spark = SparkSession.builder().master("local[*]").getOrCreate()
import spark.implicits._
val df = Seq("2023-03-13T15:18:14+0700").toDF("time")
val result = df.select(to_timestamp(col("time"), "yyyy-MM-dd'T'hh:mm:ss.SSSXXX").alias("newtime"))
result.show(truncate = false) // Null
val result1 = df.select(to_timestamp(col("time"), "yyyy-MM-dd'T'hh:mm:ssXXX").alias("newtime"))
result1.show(truncate = false) // Null
}
2条答案
按热度按时间fjnneemd1#
您使用的格式不正确,您的日期类型为ISO 8601,正确的格式为
yyyy-MM-dd'T'HH:mm:ssZ
,下面是使用to_timestamp
函数的方法:62lalag42#
使用
cast()
变换输出
架构