Преобразовать столбец данных pyspark в указанный формат отметки c - PullRequest
0 голосов
/ 29 марта 2020

У меня есть два разных формата дат в моем фрейме данных pyspark: format1 = 2019-10-03 08.19.42.274014 format2 = 2020-03-20 11: 05: 48.899000 Я хочу избавиться от микросекунд из обоих форматов, как как в: new_format1 = 2019-10-03 08.19.42 new_format2 = 2020-03-20 11: 05: 48

Я могу сделать это для 1 формата, как показано для моего df :

 ts_col1                           ts_col2                             ts_col3 
 2019-10-03 08.19.42.274014        2019-10-03 08.19.42.274014          2019-10-03 08.19.42.274014 
 2020-03-20 11:05:48.899000        2020-03-20 11:05:48.899000          2020-03-20 11:05:48.899000

Мой код был:

format = "yyyy-MM-dd HH:mm:ss" df = df.withColumn('ts_col1', f.unix_timestamp('ts_col1', format).cast('timestamp')) df = df.withColumn('ts_col2', f.unix_timestamp('ts_col2', format).cast('timestamp')) df = df.withColumn('ts_col3', f.unix_timestamp('ts_col3', format).cast('timestamp')) df.show(2, False)

Результат моего df:

ts_col1                           ts_col2                             ts_col3 
  null                              null                                null                              
  2020-03-20 11:05:48               2020-03-20 11:05:48                 2020-03-20 11:05:48

Я хотел бы обновить мои столбцы в df для обоих форматов без нулевых значений. Неважно, если они оба окажутся в соответствующих форматах или в одном формате (либо один). Моя единственная задача - избавиться от микросекунд в столбцах моего df.

Любая помощь будет высоко ценится. Спасибо

...