pyspark преобразует все столбцы определенного типа данных в другой

#python #pyspark #pyspark-sql

#python #pyspark #apache-spark-sql

Вопрос:

У меня есть фрейм данных с определенным количеством столбцов даты. Я хочу привести их все к временной метке, не беспокоясь о точных названиях столбцов. Итак, я хочу что-то вроде: «Приведите все столбцы даты к отметке времени и сохраните те же имена столбцов»

Я знаю, что для одного столбца это было бы:

 df = df.withColumn('DATUM', df['DATUM'].cast('timestamp'))
  

Ответ №1:

Вы можете использовать цикл и определять, когда тип является date , и выполнять приведение только для этих случаев.

 for col in df.dtypes:
  if(col[1] == 'date'):
    df = df.withColumn(col[0],df[col[0]].cast('timestamp'))
  

Ответ №2:

Вы можете использовать цикл for и приводить к отметке времени

 df.select(
    *[df[col_name].cast('timestamp') for col_name in df.columns]
)