按日期排序Spark DataFrame的列

时间:2016-11-13 21:33:52

标签: scala apache-spark apache-spark-sql

我有一个像这样的DataFrame:

+---+-------------------+
|C1 |     C2            |
+---+-------------------+
| A |21/12/2015-17-14-12|
| A |21/12/2011-20-12-44|
| B |11/02/2015-15-31-11|
| B |09/04/2015-13-38-05|  
| C |11/06/2013-23-04-35|
+---+-------------------+

第二列是时间戳dd / mm / yyyy-hh-mm-ss。我想像那样排序每一行

+---+-------------------+
|C1 |     C2            |
+---+-------------------+
| A |21/12/2011-20-12-44|
| C |11/06/2013-23-04-35|
| B |11/02/2015-15-31-11|
| B |09/04/2015-13-38-05|  
| A |21/12/2015-17-14-12|
+---+-------------------+

也许我必须使用Udf?你有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您只需要一个简单的单行程。必需的进口

import org.apache.spark.sql.functions.unix_timestamp

代码:

input.sort(unix_timestamp($"C2", "dd/MM/yyyy-HH-mm-ss"))