#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]
)