簡體   English   中英

Scala:在數據框中生成日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM