0
我在Java中使用Spark 2.0。 我有一個數據集看起來像這樣:Spark 2.0 groupBy列,然後在datetype列上獲取max(date)
------+----+----+----+----------------+
ID|col1|col2|col3| date|
------+----+----+----+----------------+
981200| a | q | z | 2010-12-30|
968800| s | w | x | 2010-12-31|
966500| d | e | c | 2010-11-02|
966500| f | r | v | 2010-12-01|
981200| g | t | b | 2010-12-03|
我wanto到GROUPBY ID,並與「最後」日期(最近的一次)只得到該行。列「日期」的類型是日期。
在我的情況下,結果將是
------+----------------+
ID| max(date)|
------+----------------+
981200| 2010-12-30|
968800| 2010-12-31|
966500| 2010-12-01|
我試圖
Dataset<Row> df = old_df.groupBy("ID").max("date");
但在線程 「主要」 org.apache.spark.sql失敗,錯誤
異常.AnalysisException: 「date」不是數字列。 聚合函數只能應用於數字列。
有沒有辦法在Spark中獲取最大日期(使用類型日期)?
在此先感謝。
完美的作品,非常感謝! – ercaran