Pyspark:在动态配置单元查询中获取 current_timestamp

Posted

技术标签:

【中文标题】Pyspark:在动态配置单元查询中获取 current_timestamp【英文标题】:Pyspark: Getting current_timestamp in dynamic hive query 【发布时间】:2016-06-29 00:19:14 【问题描述】:

我正在使用 python 程序准备 Spark,该程序根据连接从 2 个表中插入数据。目标表的最后一列有一个时间戳字段,其值为创建时间戳。

我尝试了 current_timestamp 和 from_unixtime(unix_timestamp())。这两个功能似乎都不起作用。我现在试过了()。

例如,HiveContext(sc).sql("SELECT " + from_unixtime(unix_timestamp()) + " ") 此语句在 pyspark 中出现“NameError: name 'from_unixtime' is not defined”错误我已经导入了 pyspark.sql.function

有没有办法将时间戳值插入目标表?我的查询包含从我在 HiveContext 中运行的 2 个表中选择的插入。

提前致谢!!!

【问题讨论】:

我试过下面的代码,我得到: TypeError: 'Column' object is not callable import pyspark.sql.functions as func HiveContext(sc).sql("SELECT " + func.from_unixtime( func.unix_timestamp()) + "")。有人可以说这个查询有什么问题。谢谢!!! 【参考方案1】:

在下面的双引号中使用并且有效:

HiveContext(sc).sql("SELECT from_unixtime(unix_timestamp())")

【讨论】:

以上是关于Pyspark:在动态配置单元查询中获取 current_timestamp的主要内容,如果未能解决你的问题,请参考以下文章

在同一会话上从 pyspark 运行多个配置单元查询

PySpark - 遍历每一行数据帧并运行配置单元查询

pyspark 代码将 dynamodb 表复制到配置单元问题:不允许操作

如何从 SQL 表中动态获取单元格值?

找不到pyspark数据框保存到配置单元表

无法使用 pyspark 从 hive 表中查询复杂的 SQL 语句