Spark 2.0 Как конвертировать DF Date / timstamp столбец в другой формат даты в Scala? - PullRequest
0 голосов
/ 04 июня 2019

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

+-------------------+-----+-----+-----+-----+-------+
|             MyDate| Open| High|  Low|Close| Volume|
+-------------------+-----+-----+-----+-----+-------+
|2006-01-03 00:00:00|983.8|493.8|481.1|492.9|1537660|
|2006-01-04 00:00:00|979.6|491.0|483.5|483.8|1871020|
|2006-01-05 00:00:00|972.2|487.8|484.0|486.2|1143160|
|2006-01-06 00:00:00|977.8|489.0|482.0|486.2|1370250|
|2006-01-09 00:00:00|973.4|487.4|483.0|483.9|1680740|
+-------------------+-----+-----+-----+-----+-------+

Я попытался изменить значения столбца «MyDate» на другой формат, например «YYYY-MON», и записать так:

citiDataDF.withColumn("New-Mydate",to_timestamp($"MyDate", "yyyy-MON")).show(5)

После выполнения кода обнаружил, что новый столбец "New-Mydate".но я не мог видеть желаемый выходной формат.не могли бы вы помочь

1 Ответ

0 голосов
/ 04 июня 2019

Вам нужно date_format вместо to_timestamp:

val citiDataDF = List("2006-01-03 00:00:00").toDF("MyDate")
citiDataDF.withColumn("New-Mydate",date_format($"New-Mydate", "yyyy-MMM")).show(5)

Результат:

+-------------------+----------+
|             MyDate|New-Mydate|
+-------------------+----------+
|2006-01-03 00:00:00|  2006-Jan|
+-------------------+----------+

Примечание: Три "M" означают месяц как строку, если вы хотите, чтобы месяц был Int, вы должны использовать только два "M"

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