在我的資料框中,我有時間戳列,其值的格式為:“%Y-%m-%d %H:%M:%m”。我想使用以下方法將此資料框保存到鑲木地板:
df.write.partitionBy('p_timestamp').mode("overwrite").parquet('output/proto.parquet')
并且我想將時間戳磁區保存為 AWS 資料湖 s3 時間戳格式:“%Y-%m-%dT%H-%M”
我試過:
df.select(F.col("p_timestamp"), F.date_format(F.col("p_timestamp"), "%Y-%m-%dT%H-%M").alias("date_format")).show()
但我得到一個錯誤:
Illegal pattern character 'T'
我將不勝感激任何提示。
uj5u.com熱心網友回復:
我認為您正在尋找的格式字串是:
"yyyy-MM-dd'T'HH-mm"
您會收到錯誤訊息,因為T
未將其參考以'
將其標記為字串。如果你需要一些不同的東西,你可以參考 sparks Datetime Patterns for Formatting and Parsing 。
小例子:
import pyspark.sql.types as T
schema = T.StructType([T.StructField("Time", T.StringType(), False)])
df = spark.createDataFrame([('1970-09-01 02:02:10',)], schema=schema)
df.withColumn("Convert", F.date_format(F.col("Time"), "yyyy-MM-dd'T'HH-mm")).show()
輸出:
------------------- ----------------
| Time| Convert|
------------------- ----------------
|1970-09-01 02:03:10|1970-09-01T02-03|
------------------- ----------------
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/470552.html