Как преобразовать дату («гггг-мм-дд») в юлианскую дату с помощью функции Spark?

#apache-spark

#apache-spark

Вопрос:

У меня есть дата:

 "2009-01-15"
  

Как преобразовать дату по юлианскому календарю с помощью функции Spark?

Ожидаемый результат:

 2454847
  

Я использую R язык и пытаюсь использовать эти функции.

Ответ №1:

В spark scala это легко с помощью java time API, как показано ниже-

   val toJulian =
      udf((str: String) => java.time.LocalDate.parse(str).getLong(java.time.temporal.JulianFields.JULIAN_DAY))
    Seq("2009-01-15").toDF("date")
      .withColumn("julian_date", toJulian($"date"))
      .show(false)

    /**
      *  ---------- ----------- 
      * |date      |julian_date|
      *  ---------- ----------- 
      * |2009-01-15|2454847    |
      *  ---------- ----------- 
      */