传递列以转换为时区值

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)"))

以上是关于传递列以转换为时区值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Snowflake 将时间 PST/PDT 转换为时间戳

将列转换为时间戳 - Pandas Dataframe

在 Java 中将国家/地区代码转换为时区

在Android中将字符串日期转换为时间戳?

在 Hive 或 Impala 中从 int 转换为时间戳

时间戳转换为时间