Apache spark WHERE 子句不起作用

Apache spark WHERE clause not working

我运行在较小的 yarn 集群上安装 Apache Spark 1.6.1。我正在尝试使用如下查询从配置单元 table 中提取数据:

df = hiveCtx.sql("""
SELECT *
  FROM hive_database.gigantic_table
 WHERE loaddate = '20170502'
""")

但是,无论我为 loaddate 赋予什么值,生成的数据帧都是整个 table。我能想到的唯一奇怪的事情是配置单元 table 被那个 loaddate 列分区。

Hive 单独显示 运行 此查询正确。我试过使用 .filter() 和各种级别的引号转换为整数,但在 Spark 上没有运气。

事实证明,对分区列的筛选区分大小写。

https://issues.apache.org/jira/browse/SPARK-19292