2017-08-25 7 views
0

sql.functions.unix_timestampを使用してスパークした日付のタイムスタンプ数値形式(y-m-d、yyyyMMddなど)に変換しています。タイムスタンプはネイティブでSparkで日付形式を省略します

日は 1991-Aug-09 Fri

のように、月の省略名や曜日を使用する場合に問題があるだけでネイティブスパーク機能を使用して変換を実現する方法はありますか?

免責事項:私はPythonの関数を使用してそれを行うことができます知っているが、それはちょうど好奇心)を使用でき

答えて

3

reference - SimpleDateFormat

yyyy-MMM-dd EEE 

形式でunix_timestamp

spark.sql("SELECT CAST(unix_timestamp('1991-Aug-09 Fri', 'yyyy-MMM-dd EEE') AS TIMESTAMP)").show() 
+-------------------------------------------------------------------+ 
|CAST(unix_timestamp(1991-Aug-09 Fri, yyyy-MMM-dd EEE) AS TIMESTAMP)| 
+-------------------------------------------------------------------+ 
|            1991-08-09 00:00:00| 
+-------------------------------------------------------------------+ 

またはto_date/to_timestamp(スパーク2.2以降):

spark.sql("SELECT to_date('1991-Aug-09 Fri', 'yyyy-MMM-dd EEE')").show() 
+--------------------------------------------+ 
|to_date('1991-Aug-09 Fri', 'yyyy-MMM-dd EEE'| 
+--------------------------------------------+ 
|         1991-08-09| 
+--------------------------------------------+ 
関連する問題