传递列以转换为时区值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传递列以转换为时区值相关的知识,希望对你有一定的参考价值。
我正在使用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)"))
以上是关于传递列以转换为时区值的主要内容,如果未能解决你的问题,请参考以下文章