我有一个带有一定数量日期列的数据框。我想将它们全部转换为时间戳,而不必担心列的确切名称。因此,我想要的是以下内容:“将所有日期列都设置为时间戳,并保持相同的列名称”
我知道在一列中应该是:
df = df.withColumn('DATUM', df['DATUM'].cast('timestamp'))
答案 0 :(得分:0)
您可以使用for循环,并强制转换为时间戳记
df.select(
*[df[col_name].cast('timestamp') for col_name in df.columns]
)
答案 1 :(得分:0)
您可以使用循环来检测类型为date
的时间,并仅在这些情况下执行强制转换。
for col in df.dtypes:
if(col[1] == 'date'):
df = df.withColumn(col[0],df[col[0]].cast('timestamp'))