как получить последние три года данные в искре - PullRequest
0 голосов
/ 21 января 2020

есть ли способ получить данные за последние три года из таблицы улья, в моем столбце есть данные в этом формате (2018-07-01 00: 00: 00.0) Я должен получить данные за последние три года

Ответы [ 3 ]

1 голос
/ 21 января 2020
import java.util.Calendar
import java.sql.Date

import org.apache.spark.sql.functions.{months_between, col, lit}


def getNewNowCal = Calendar.getInstance()
val nowDate = new Date(getNewNowCal.getTimeInMillis)

yourDF
  .withColumn("now_date", lit(nowDate))
  .filter(months_between(col("now_date"), col("date_event") =< 3*12) 
          && col("date_event") < col("now_date"))
  //date_event (in your dataframe) is less than 3 years from today
1 голос
/ 21 января 2020

было бы похоже, что нам нужно получить данные более чем за 3 * 12 месяцев

spark.table("tableName").where(col("dt") >= add_months(current_date(),"MM-dd-yyyy"),-3*12)

, если усечь их до месяца.

spark.table("tableName").where(col("dt") >= date_trunc( "month" ,add_months(current_date(),"MM-dd-yyyy"),-3*12))
1 голос
/ 21 января 2020
spark.table("tableName").where(col("dt") >= date_sub(current_date(), 365 * 3) && col("dt") < current_date())
...