Я использовал pyspark 3.0. У меня есть фреймворк со столбцом «время» в StringType. Я пытаюсь преобразовать это в метку времени. Фрейм данных выглядит так.
+---------------+
| time|
+---------------+
|10:59:46.000 AM|
| 6:26:36.000 PM|
|11:13:38.000 PM|
+---------------+
Я пробовал как to_timestamp (), так и unix_timestamp.
df.withColumn("new_time", F.to_timestamp(col("time"),"hh:mm:ss.SSS a")).show()
.
df.withColumn('new_time', F.unix_timestamp(inputDF['time'], 'hh:mm:ss.SSS a').cast(TimestampType())).show()
Я получаю ошибку это.
org.apache.spark.SparkUpgradeException: You may get a different result due to the upgrading of Spark 3.0: Fail to parse '6:26:36.000 PM' in the new parser. You can set spark.sql.legacy.timeParserPolicy to LEGACY to restore the behavior before Spark 3.0, or set to CORRECTED and treat it as an invalid datetime string.
Я хочу знать, как это делается в Spark 3.0 без настройки
spark.conf.set("spark.sql.legacy.timeParserPolicy","LEGACY")
Любая помощь будет очень принята. Спасибо.