У меня есть Spark Data Frame, несколько столбцов 2 из которых называются записанные_ц и тс. Зарегистрированные значения - это строковое представление значения даты и времени (в формате 20180101101125), а ts - истинная временная метка.
Когда я распечатываю содержимое фрейма данных, между значениями в записи_тс и тс встречается взаимно-однозначное соответствие.
Затем я вычисляю среднее для столбца, используя следующее
meanDF = pv \
.groupBy("p_id", "u_id", "r_id", "b_id", window("ts", "15 minutes", "1 minute")) \
.agg(mean("value")) \
.withColumnRenamed("avg(value)", "mean_15")
meanDF.createOrReplaceTempView("my_stats")
upsertDF = spark.sql("select p_id, u_id, r_id, b_id, \
date_format(window['start'], 'yyyyMMddHHmmss') as recorded_dtm, mean_15 \
from my_stats ")
aggRows = upsertDF.collect()
for aggRow in aggRows:
logger.info(aggRow)
К сожалению, значения для записанного_дмпа падают в секундах и печатаются как 20180101101100 вместо 20180101101125
Я пытался заменить 15 минут на 900 секунд и 1 минуту на 60 секунд, но это не имеет значения.
Как сохранить также секунды из столбца отметки времени?