Конвертировать yyyyMMdd на сегодняшний день с Spark - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть строковая переменная, которая хранит ввод как yyyyMMdd в scala при использовании spark.

snapshot_date = 20191001

Я хочу сначала преобразовать это в дату, затем вычесть день из этой даты и преобразуюснова в yyyyMMdd формате, поэтому моя предыдущая переменная даты будет 20190930.

Ответы [ 2 ]

1 голос
/ 30 сентября 2019
val df = Seq("20191001").toDF("date")
df.show()
+--------+
|    date|
+--------+
|20191001|
+--------+ 

df.select(date_format(date_sub(to_date('date,"yyyyMMdd"),1),"yyyyMMdd").as("date")).show()

+--------+
|    date|
+--------+
|20190930|
+--------+
0 голосов
/ 30 сентября 2019

С подходом ниже вы можете достичь, я верю

 val input_df = List("20190930").toDF("date")
 input_df.withColumn("new_date", from_unixtime(unix_timestamp(date_sub(from_unixtime(unix_timestamp($"date","yyyyMMdd"),"yyyy-MM-dd"),1), "yyyy-MM-dd"),"yyyyMMdd")).show
Output:

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