Как извлечь месяц из значений столбца даты в фрейме данных scala? - PullRequest
1 голос
/ 06 марта 2019

Дано:

val df = Seq((1L, "04-04-2015")).toDF("id", "date")
val df2 = df.withColumn("month", from_unixtime(unix_timestamp($"date", "dd/MM/yy"), "MMMMM"))
df2.show()

Я получил этот вывод:

+---+----------+-----+
| id|      date|month|
+---+----------+-----+
|  1|04-04-2015| null|
+---+----------+-----+

Однако я хочу, чтобы вывод был таким, как показано ниже:

+---+----------+-----+
| id|      date|month|
+---+----------+-----+
|  1|04-04-2015|April|
+---+----------+-----+

Как я могу сделать это в sparkSQL, используя Scala?

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Это должно сделать это:

val df2 = df.withColumn("month", date_format(to_date($"date", "dd-MM-yyyy"), "MMMM"))

df2.show
+---+----------+-----+
| id|      date|month|
+---+----------+-----+
|  1|04-04-2015|April|
+---+----------+-----+

Примечание:

  • Первая строка (to_date) должна соответствовать формату вашей существующей даты
    • Будьте осторожны с: "ДД-ММ-ГГГГ" против "ММ-ДД-ГГГГ"
  • Вторая строка (date_format) - это формат вывода

Docs:

0 голосов
/ 07 марта 2019

Ничего Неправильно в вашем коде просто сохраняет ваш формат даты в качестве столбца даты. Здесь я прилагаю скриншот с вашим кодом и изменениями кодов.

enter image description here

HAppy Hadoooooooooooopppppppppppppppppppppp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...