2016-08-29 58 views
2

我想編寫代碼來轉換日期時間列日期和last_updated_date實際上是unix時間轉換爲「mm-dd-yyyy」格式顯示的雙打時間。我該怎麼做呢 ?斯卡拉火花:轉換雙列日期時間列數據框

import org.joda.time._ 
import scala.tools._ 
import org.joda.time.format.DateTimeFormat._ 
import java.text.SimpleDateFormat 
import org.apache.spark.sql.functions.{unix_timestamp, to_date} 
root 
|-- date: double (nullable = false) 
|-- last_updated_date: double (nullable = false) 
|-- Percent_Used: double (nullable = false) 

+------------+---------------------+------------+ 
|  date| last_updated_date|Percent_Used| 
+------------+---------------------+------------+ 
| 1.453923E12|  1.47080394E12| 1.948327124| 
|1.4539233E12|  1.47080394E12| 2.019636442| 
|1.4539236E12|  1.47080394E12| 1.995299371| 
+------------+---------------------+------------+ 

回答

1

轉換爲timestamp:

df.select(col("date").cast("timestamp")); 
+0

嗯,我認爲有一些問題與此,因爲日期是 「長」,這是直接進行此操作時會導致日期過期 –

1

使用from_unixtime將其轉換爲一個時間戳:

df.select(from_unixtime("date").as("date"))