2016-08-18 20 views
1

私はSQL文脈から構築したスパークデータフレームを持っています。 datetimeフィールドを切り捨てましたDATE_FORMAT(time, 'Y/M/d HH:00:00') AS time_hourlySparkデータフレーム列を文字列から日付に変換する

ここで列の種類は文字列です。どのように文字列のdataFrame列をdatetime型に変換できますか?

答えて

0

trunc(列の日付、形式)を使用すると、日付のデータ型を失わないことができます。 あなたが次のことを試すことができるDFと仮定すると、日付に

+0

'trunc(列の日付、書式)'を試しましたが、**書式が "MONTH"のときに機能します** **書式が "HOUR"のときはnullを返します** - どうすればよいですか? – Owen

+0

あなたが試しているサンプルデータを投稿してください。 – Hari

+0

これはあなたのために働くと思います 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

0

を文字列に変換する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

関連する問題