java.sql.timestamp
類型的兩個領域
得到兩個的java.sql.Timestamp場之間的天數,我想找到這兩個列如何在斯卡拉
下面之間的天數是格式* 2016年12月23日23:56:02.0(YYYY-MM-DD HH:MM:SS.S)我的數據
我試過很多方法,但沒有找到任何解決辦法。所以任何人都可以在這裏幫忙。
java.sql.timestamp
類型的兩個領域
得到兩個的java.sql.Timestamp場之間的天數,我想找到這兩個列如何在斯卡拉
下面之間的天數是格式* 2016年12月23日23:56:02.0(YYYY-MM-DD HH:MM:SS.S)我的數據
我試過很多方法,但沒有找到任何解決辦法。所以任何人都可以在這裏幫忙。
org.apache.spark.sql.functions
是一個寶庫。例如,有datediff
方法不正是你想要什麼:here is the ScalaDoc.
一個例子:
val spark: SparkSession = ??? // your spark session
val sc: SparkContext = ??? // your spark context
import spark.implicits._ // to better work with spark sql
import java.sql.Timestamp
final case class Data(id: Int, from: Timestamp, to: Timestamp)
val ds =
spark.createDataset(sc.parallelize(Seq(
Data(1, Timestamp.valueOf("2017-01-01 00:00:00"), Timestamp.valueOf("2017-01-11 00:00:00")),
Data(2, Timestamp.valueOf("2017-01-01 00:00:00"), Timestamp.valueOf("2017-01-21 00:00:00")),
Data(3, Timestamp.valueOf("2017-01-01 00:00:00"), Timestamp.valueOf("2017-01-23 00:00:00")),
Data(4, Timestamp.valueOf("2017-01-01 00:00:00"), Timestamp.valueOf("2017-01-07 00:00:00"))
)))
import org.apache.spark.sql.functions._
ds.select($"id", datediff($"from", $"to")).show()
通過運行這個片段中,你最終會與下面的輸出:
+---+------------------+
| id|datediff(from, to)|
+---+------------------+
| 1| -10|
| 2| -20|
| 3| -22|
| 4| -6|
+---+------------------+
DATEDIFF方法錯誤需要的列,但我有田所以在我的情況下它不工作.. 下面是我有兩個領域,並希望這兩個領域之間的天差異的細節。 val firstDate:java.sql.TimeStamp = 2016-12-23 23:56:02.0 val secondDate:java.sql.TimeStamp = 2017-12-23 23:56:02.0 我希望這兩者之間的天數日期 –
是什麼阻止你使用列? – stefanobaghino
當我給變量名,我提示以下錯誤:
你格式看起來更像'yyyy-MM-dd HH:mm:ss.S'。 –
這不是重複的問題。在這個問題中,我詢問了關於java.sql.timestamp格式以及你標記的問題是關於日期的問題。 @ElliottFrisch –
是的..你是正確畝格式爲YYYY-MM-DD HH:MM:SS.S。我已經做了我的問題的變化 –