Pyspark 如何在pysark中将4/23/19这样的字符串解析为时间戳

Pyspark 如何在pysark中将4/23/19这样的字符串解析为时间戳,pyspark,timestamp,Pyspark,Timestamp,我有一些列的日期来自源文件,看起来像4/23/19 4是月,23是日,19是2019年 如何在pyspark中将其转换为时间戳 到目前为止 def ParseDateFromFormats(col, formats): return coalesce(*[to_timestamp(col, f) for f in formats]) df2 = df2.withColumn("_" + field.columnName, ParseDateFromFormats(df2[field.col

我有一些列的日期来自源文件,看起来像4/23/19

4是月,23是日,19是2019年

如何在pyspark中将其转换为时间戳

到目前为止

def ParseDateFromFormats(col, formats):
  return coalesce(*[to_timestamp(col, f) for f in formats])

df2 = df2.withColumn("_" + field.columnName, ParseDateFromFormats(df2[field.columnName], ["dd/MM/yyyy hh:mm", "dd/MM/yyyy", "dd-MMM-yy"]).cast(field.simpleTypeName))


似乎没有一种日期格式可以工作

您的代码不工作的原因可能是因为您颠倒了日期和月份。 这项工作:

从pyspark.sql.functions导入到
time_df=spark.createDataFrame([('4/23/19',)],['dt'])
带列的时间('正确日期',至日期('dt','MM/dd/yy'))。显示()
+-------+-----------+
|dt |正确日期|
+-------+-----------+
|4/23/19| 2019-04-23|
+-------+-----------+

这是否回答了您的问题?