apache-spark - 传递列以转换为时区值
问题描述
我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)"))
推荐阅读
- c# - 为什么动态绑定没有按照我在以下代码中的预期方式工作?
- android - 在水平滚动视图中创建水平滚动视图
- apache-spark - Apache Ignite Spark 集成将数据持久化到 Ignite 错误
- piranha-cms - Piranha CMS:管理器界面中的自定义块问题
- nativescript - NativeScript-VideoPlayer Android 本地视频不显示
- c++ - 字符串文字前缀未编译
- google-cloud-platform - 从 AWS 迁移的 GCP VM 上的 SSH 问题
- hadoop - oozie - java.lang.NoClassDefFoundError: 无法初始化类 java.net.NetworkInterface
- javascript - svelte 如何使组件变脏
- android - 将模拟器连接到 vagrant laravel homestead