Это простая работа для потока данных.Вы можете использовать ParDo или Map.
В приведенном ниже примере каждая строка из CSV будет передана в Map (convertDate).Функция convertDate, которую нужно изменить, чтобы она соответствовала вашему преобразованию даты, затем возвращает измененную строку.Затем весь преобразованный CSV записывается в набор выходных файлов.
Пример (упрощенный) с использованием Map:
def convertDate(line):
# convert date to desired format
# Split line into columns, change date format for desired column
# Rejoin columns into line and return
cols = line.split(',') # change for your column seperator
cols[2] = my_change_method_for_date(cols[2]) # code the date conversion here
return ",".join(cols)
with beam.Pipeline(argv=pipeline_args) as p:
lines = p | 'ReadCsvFile' >> beam.io.ReadFromText(args.input)
lines = lines | 'ConvertDate' >> beam.Map(convertDate)
lines | 'WriteCsvFile' >> beam.io.WriteToText(args.output)