私はSQL文脈から構築したスパークデータフレームを持っています。 datetimeフィールドを切り捨てましたDATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly
Sparkデータフレーム列を文字列から日付に変換する
ここで列の種類は文字列です。どのように文字列のdataFrame列をdatetime型に変換できますか?
私はSQL文脈から構築したスパークデータフレームを持っています。 datetimeフィールドを切り捨てましたDATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourly
Sparkデータフレーム列を文字列から日付に変換する
ここで列の種類は文字列です。どのように文字列のdataFrame列をdatetime型に変換できますか?
trunc(列の日付、形式)を使用すると、日付のデータ型を失わないことができます。 あなたが次のことを試すことができるDFと仮定すると、日付に
を文字列に変換するTO_DATE関数は、あなたのデータフレームで、キャストする列名が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( "タイムスタンプ(from_unixtime(unix_timestamp(date_format(t)、 'Y/M/d HH:00:00')、 'Y/M/D HH:MM:SS')))dt_formattedとして「) 結果: ルート が====== | - dt_formatted:タイムスタンプ(= NULL可能真) + ----- --------------- + | dt_formatted | + -------------------- + | 2015-12-27 05:00:... | + -------------------- + – Hari