我有一個從sql上下文構建的spark數據框。 我使用DATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly
從字符串轉換Spark數據幀列到日期
截斷日期時間字段現在列類型是一個字符串。如何將字符串dataFrame列轉換爲datetime類型?
我有一個從sql上下文構建的spark數據框。 我使用DATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly
從字符串轉換Spark數據幀列到日期
截斷日期時間字段現在列類型是一個字符串。如何將字符串dataFrame列轉換爲datetime類型?
您可以使用trunc(列日期,格式)不丟失日期數據類型。 有一個TO_DATE函數將字符串轉換爲日期
假設DF是你的數據框和列名定投是time_hourly 你可以嘗試以下方法:
from pyspark.sql.types import DateType
df.select(df.time_hourly.cast(DateType()).alias('datetime'))
欲瞭解更多信息,請參閱:
1)的文檔 「鑄()」 https://spark.apache.org/docs/1.6.2/api/python/pyspark.sql.html
2)數據類型 的文檔https://spark.apache.org/docs/1.6.2/api/python/_modules/pyspark/sql/types.html
我試過'trunc(列日期,格式)',它在**格式爲「MONTH」時有效** **當**格式爲「HOUR」時返回null ** - 我該怎麼辦? – Owen
您能否發表您試用的樣本數據 – Hari
我認爲這對您有幫助 myData.selectExpr(「timestamp(from_unixtime(unix_timestamp(date_format(ts,'Y/M/d HH:00:00'),'Y/M/d HH:MM:SS')))作爲dt_formatted「) 結果: ====== 根 | - dt_formatted:時間戳(可爲空=真) + ----- --------------- + | dt_formatted | + -------------------- + | 2015-12-27 05:00:... | + -------------------- + – Hari