传递列以转换为时区值

时间:2018-12-19 15:46:43

标签: apache-spark pyspark

我正在使用to_utc_timestamp将时间戳转换为UTC时间。当我通过时区时,列中的列不能调用:

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

data_frame.doj_tz-列对象不可调用

如何解决?

1 个答案:

答案 0 :(得分: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)"))
相关问题