sql - 为什么我在运行 SQL spark 时只得到“OK”而不是表结果?
问题描述
我想从 fireIncidents 表中获取 2016 年 4 月 4 日发生的所有事件,但是当我输入以下代码时,除了“OK”之外什么都没有返回,但是当我删除 where 子句时,表会返回。环境是 DataBricks。
Select *
From fireIncidents
Where 'Incident Date'="04/04/2016"
解决方案
这背后的原因是 Spark(与大多数 SQL 引擎一样)实际上评估'Incident Date' = "04/04/2016"
为false
因为它比较了 2 个字符串值。因此查询将始终返回 0 行。您可以通过以下方式轻松检查:
spark.sql("""Select 'Incident Date'="04/04/2016"""").show()
+----------------------------+
|(Incident Date = 04/04/2016)|
+----------------------------+
| false|
+----------------------------+
您需要像这样重写您的查询:
SELECT *
FROM fireIncidents
WHERE `Incident Date` = '04/04/2016'
请注意使用反引号`来转义列名,因为它包含空格。
推荐阅读
- c++ - 在数组中显示第一个元素用户输入
- compiler-construction - 如何在coq中分析两个看似等效但行为不同的程序?
- ios - 从 getdocument which insdie getdocuments 在我的数组中获取 0 值
- android-studio - fragment.show(fragmentManager,"confirmDelete") 错误
- javascript - 如何通过逗号和/或换行符和/或空格分割字符串
- jquery - 即使在刷新页面后,如何使用 js 保持“模式”
- python - 如何获取数据框中的频率?
- c# - 如何使用 IF 语句检查图片框是否包含某个图像
- go - 时间字符串到 time.Time
- php - 根据内容从数组中删除数组值,PHP