Pyspark 带时区的Pypark时间戳

Pyspark 带时区的Pypark时间戳,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我正在尝试使用pyspark从表中提取一个值,我需要以下格式的值:2020-06-17T15:08:24z df = spark.sql('select max(lastModDt)as lastModDate from db.tbl') jobMetadata = existingMaxModifiedDate.withColumn("maxDate", date_format(to_timestamp(existingMaxModifiedDate.lastModDat

我正在尝试使用pyspark从表中提取一个值,我需要以下格式的值:2020-06-17T15:08:24z

df = spark.sql('select max(lastModDt)as lastModDate from db.tbl')

jobMetadata = existingMaxModifiedDate.withColumn("maxDate", date_format(to_timestamp(existingMaxModifiedDate.lastModDate, "yyyy-mm-dd HH:MM:SS.SSS"), "yyyy-mm-dd HH:MM:SS.SSS"))

但是,对于创建的列“maxDate”,我总是得到null。谢谢。

也许这是有用的-

val timeDF=spark.sql(
"""
|选择当前时间戳()作为时间1,
|将(日期格式(当前时间戳(),'yyyy-MM-dd HH:MM:ssZ'),'T')转换为时间2,
|将(日期格式(当前时间戳(),'yyyy-MM-dd#HH:MM:ss$'),'#$','Tz')转换为时间3
“.stripMargin)
timeDF.show(假)
timeDF.printSchema()
/**
* +-----------------------+------------------------+--------------------+
*|时间1 |时间2 |时间3|
* +-----------------------+------------------------+--------------------+
*| 2020-06-30 21:22:04.541 | 2020-06-30T21:22:04+0530 | 2020-06-30T21:22:04z|
* +-----------------------+------------------------+--------------------+
*
*根
*|--time1:时间戳(nullable=false)
*|--time2:string(nullable=false)
*|--time3:string(nullable=false)
*/

谢谢。这将返回一个字符串,但仍然不会在末尾添加所需的Z。以下是我运行它时得到的信息'2020-06-30T15:18:41+0000'使用
time3
,还请注意
date\u格式
始终返回字符串类型这在python中而不是scala中是否可行,并且在datetime类型而不是字符串中是否可行?谢谢。您可以在python中使用它,就像在spark.sql()中一样。我认为,date_格式使用提供的格式将时间戳转换为字符串类型。