[英]Scala: Generate dates in a dataframe
我想在 Scala 中創建一個數據框,其中包含從開始日期到結束日期的所有日期。
我可以使用此表達式獲取日期數組
val dates = sqlContext.sql("SELECT sequence(to_date('2018-01-01'), to_date('2018-02-01'), interval 1 day) as dates")
+--------------------+
| dates|
+--------------------+
|[2018-01-01, 2018...|
+--------------------+
這給了我一個包含一列和一行的數據框。 我寧願每個日期都需要一行,而不是像現在這樣包含所有日期的數組
我怎樣才能做到這一點?
+--------------------+
| dates|
+--------------------+
|[2018-01-01|
|[2018-01-02|
|[2018-01-03|
|[2018-01-04|
etc.....
+--------------------+
您可以使用explode
來展開數組:
SELECT explode(sequence(to_date('2018-01-01'), to_date('2018-02-01'), interval 1 day)) as dates
您可以創建一個日期列表,然后將其轉換為這樣的數據框。
import org.joda.time.LocalDate
val start = new LocalDate(2019, 9, 24)
val end = new LocalDate(2019, 9, 28)
val numberOfDays = Days.daysBetween(start, end).getDays
val days = (for (f<- 0 to numberOfDays)
yield start.plusDays(f).toDate.toString).toList
import session.implicits._
val df = days.toDF("dates")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.