我正在使用pyspark代码来处理一些从Hive View获取的数据。我们当前正在使用HDP 3.1版本。问题是我可以看到Hive View包含数据,例如:日期为2019年6月5日的数据,当我尝试从Spark SQL中获取数据时,我会获得日期为2019年6月4日的最新数据。
我已经尝试在spark中选择完整的数据,然后通过Date DESC对其进行排序,以确保确定该问题。我还检查了Hive中6月5日的数据是否可用。
我知道Spark和Hive在HDP 3+中管理不同的目录。但是据我所知,Admin已经负责将Spark指向Hive Catalog。是目录问题,需要再次检查吗?
更新: 在评论中提问,这是我在Hive中运行的示例代码,并带有我得到的示例结果-
配置查询
select number,v_date, location, region from View1 where Upper(category) ="I" and lower(region) ="cochin" and to_date(visit_date) between "2019-06-02" AND "2019-06-06" order by to_date(visit_date) desc limit 500;
采样结果:
如上所述,我在Hive获得了6月5日的结果。现在,当我在 PySpark中执行相同操作时:
data_for_region = sparkSession.sql('select number, v_date, location, region from View1 where Upper(category) ="I" and lower(region) ="cochin" and date_format(visit_date,"yyyy-MM-dd") between "2019-06-02" AND "2019-06-06" order by visit_date desc limit 50')
采样结果
如您所见,它只是没有显示6月5日的结果,而是提供了6月4日的数据。我只是不知道如何解决这种差异。