我正在使用to_utc_timestamp
将时间戳转换为UTC时间。我在一个列中有日期时间,在另一列中有时区,当我通过时区时,它表示列不可调用:
data_frame.withColumn(‘target_date’, to_utc_timestamp(data_frame.doj_date, data_frame.doj_tz))
data_frame.doj_tz - 列对象不可调用
怎么解决?
如果函数不期望将列对象作为参数,则无法将列对象传递给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)"))