имеют фрейм данных со столбцом метки времени (тип метки времени) с именем «maxTmstmp» и другим столбцом с часами, представленным в виде целых чисел под названием «WindowHours». Я хотел бы динамически вычитать временную метку и целочисленные столбцы, чтобы получить меньшую временную метку .
Мои данные и желаемый эффект (столбец "minTmstmp"):
+-----------+-------------------+-------------------+
|WindowHours| maxTmstmp| minTmstmp|
| | |(maxTmstmp - Hours)|
+-----------+-------------------+-------------------+
| 1|2016-01-01 23:00:00|2016-01-01 22:00:00|
| 2|2016-03-01 12:00:00|2016-03-01 10:00:00|
| 8|2016-03-05 20:00:00|2016-03-05 12:00:00|
| 24|2016-04-12 11:00:00|2016-04-11 11:00:00|
+-----------+-------------------+-------------------+
root
|-- WindowHours: integer (nullable = true)
|-- maxTmstmp: timestamp (nullable = true)
У меня естьуже найдено выражение с часовым интервалом, но оно не является динамическим.Приведенный ниже код не работает должным образом.
standards.
.withColumn("minTmstmp", $"maxTmstmp" - expr("INTERVAL 10 HOURS"))
.show()
Работает на Spark 2.4 и scala.