【问题标题】:Pyspark change string to timestamptypePyspark 将字符串更改为时间戳类型
【发布时间】:2021-11-19 09:03:16
【问题描述】:

我是 PySpark 的新手,我正在尝试创建一个函数,当将列从 String 类型输入到 timestampType 时可以使用该函数。

输入列字符串如下所示:23/04/2021 12:00:00 AM

我希望将其转换为 timestampType,以便我可以使用 pyspark 获取最新日期。

下面是我目前创建的函数:

def datetype_change(self, key, col):
  self.log.info("datetype_change...".format(self.app_name.upper()))
  self.df[key] = self.df[key].withColumn("column_name", F.unix_timestamp(F.col("column_name"), 'yyyy-MM-dd HH:mm:ss').cast(TimestampType()))

当我运行它时,我得到一个错误:

NameError: name 'TimestampType' is not defined

如何更改此函数以获取预期的输出?

【问题讨论】:

  • 你导入TimestampType类了吗?
  • 感谢您的提示,我之前确实导入了它。但实际上缺少的是: from pyspark.sql.types import * 所以我移植了那个

标签: string function pyspark type-conversion unix-timestamp


【解决方案1】:

找到我的答案:

  def datetype_change(self,key,col):
  self.log.info("-datetype_change...".format(self.app_name.upper()))

  self.df[key] = self.df[key].withColumn(col, F.unix_timestamp(self.df[key][col], 'dd/MM/yyyy hh:mm:ss aa').cast(TimestampType()))

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
相关资源
最近更新 更多