传递列以转换为时区值

问题描述 投票:0回答:1

我正在使用to_utc_timestamp将时间戳转换为UTC时间。我在一个列中有日期时间,在另一列中有时区,当我通过时区时,它表示列不可调用:

data_frame.withColumn(‘target_date’, to_utc_timestamp(data_frame.doj_date, data_frame.doj_tz))

data_frame.doj_tz - 列对象不可调用

怎么解决?

apache-spark pyspark
1个回答
0
投票

如果函数不期望将列对象作为参数,则无法将列对象传递给pyspark函数。在这种情况下,to_utc_timestamp需要一个表示时区的字符串,并且您提供了一个列对象,这就是您收到此错误的原因。

解决方法是在expr中使用withColumn

import pyspark.sql.functions as func

data_frame.withColumn('target_date', func.expr("to_utc_timestamp(doj_date, doj_tz)"))
© www.soinside.com 2019 - 2024. All rights reserved.