gpt4 book ai didi

hadoop - 配置单元 pyspark 日期比较

转载 作者:可可西里 更新时间:2023-11-01 15:58:34 24 4
gpt4 key购买 nike

我正在尝试将 hiveQL 查询转换为 pyspark。我正在过滤日期并获得不同的结果,我想知道如何让 pySpark 中的行为与 Hive 的行为相匹配。配置单元查询是:

SELECT COUNT(zip_cd) FROM table WHERE dt >= '2012-01-01';

在 pySpark 中,我正在进入解释器:

import pyspark.sql.functions as psf
import datetime as dt

hc = HiveContext(sc)
table_df = hc.table('table')
DateFrom = dt.datetime.strptime('2012-01-01', '%Y-%m-%d')
table_df.filter(psf.trim(table.dt) >= DateFrom).count()

我得到的两个计数的结果相似但不相同。有谁知道这里发生了什么?

最佳答案

您的代码首先从日期 2012-01-01 创建 datetime 对象。然后在过滤期间将对象替换为它的字符串表示形式 (2012-01-01 00:00:00) 并使用字典顺序比较日期,过滤掉 2012-01-01:

>>> '2012-01-01' >= '2012-01-01 00:00:00'
False
>>> '2012-01-02' >= '2012-01-01 00:00:00'
True

要获得与 SQL 相同的结果,只需使用 strptime 删除代码并使用字符串比较日期。

关于hadoop - 配置单元 pyspark 日期比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40643579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com