Шаблон java SimpleDateFormat
для ISO 8601 часового пояса в этом случае XXX
.
Так что вам нужно использовать yyyy-MM-dd'T'HH:mm:ssXXX
в качестве форматастрока.
SparkSQL
spark.sql(
"""select unix_timestamp("2019-08-22T23:57:57-07:00", "yyyy-MM-dd'T'HH:mm:ssXXX")
AS epoch"""
).show(truncate=False)
#+----------+
#|epoch |
#+----------+
#|1566543477|
#+----------+
Spark DataFrame
from pyspark.sql.functions import unix_timestamp
df = spark.createDataFrame([("2019-08-22T23:57:57-07:00",)], ["timestamp"])
df.withColumn(
"unixtime",
unix_timestamp("timestamp", "yyyy-MM-dd'T'HH:mm:ssXXX")
).show(truncate=False)
#+-------------------------+----------+
#|timestamp |unixtime |
#+-------------------------+----------+
#|2019-08-22T23:57:57-07:00|1566543477|
#+-------------------------+----------+
Обратите внимание, что pyspark - это простоОбертка на спарк - обычно я обнаружил, что документы по scala / java более полные, чем документы по питону.Это может быть полезно в будущем.