我是钻井和hbase的新手。
我已经在嵌入式(单主机)配置上安装了hbase 1.2.1和drill 1.9.0。我已经用默认参数启用了hbase插件。
我有一个可以连接和检索的表:
SELECT CONVERT_FROM(row_key, 'UTF8') as key,
CAST(fogDecDB.Location.latitude AS FLOAT) as lat
FROM fogDecDB LIMIT 10;
这给了
+-------------------------------------------------------------------+------------+
| key | lat |
+-------------------------------------------------------------------+------------+
| 00001e14dbf570471418f1c26384637a3154561bfc32062bbb416bedc165841d | 51.971 |
| 0000c0ad64df90c8feebd4e191272413d01989c997d0e2aec34cf259f3207ddb | 52.276943 |
| 00023c7cf936bd1933f8b0f690ae3f347d3fd3131278b4e0372d34dde9586b62 | 52.276943 |
| 0003164d842b488a1a0d8572ae06b983ceb3a645f41531acfe4962ad7ede80a2 | 52.276943 |
| 0003bd065e59d03f3907531279579025f49282a3aa1734d1c4d63df891420c58 | 52.1093 |
| 0006963d79ccf3a71f086f77b26a4db7da09a77c8b2c523fc51e04df4087abbd | 52.1093 |
| 00069cd1f16dde18f4b6944c81015e4f7113ae447c02743a903814c0e64bb2e8 | 52.1093 |
| 00070d2b641fc506be01c4b0b15f102d01b43d34f0b98f054154d20ea1ad7aa1 | 52.1093 |
| 0007fd3e7db369f258173e7d47c13f81e3cbb48ecf446dd6ad4fe49bda2abcf0 | 52.276943 |
| 0009c8836878a0065a617ba066c5c6ba51a9e29d22c81a8df28be40352efd4bf | 52.1093 |
+-------------------------------------------------------------------+------------+
10 rows selected (0.18 seconds)
问题是当我添加 WHERE
语句来执行一种选择,例如仅对lat>52.0的行执行选择
我执行以下命令
enter SELECT CONVERT_FROM(row_key, 'UTF8') as key,
CAST(fogDecDB.Location.latitude AS FLOAT) as lat
FROM fogDecDB
WHERE fogDecDB.Location.latitude>52
LIMIT 10;
它给了一张空table-非常奇怪。
我已经试过了 CAST
同样在 WHERE
声明 fogDecDB.Location.latitude
但结果是一样的。
谁能解释一下这个问题吗。当然,我在谷歌上搜索了很多次,但都没有运气。
非常感谢。
干杯,
安德里亚
1条答案
按热度按时间7jmck4yq1#
我已确定问题、行为和错误原因:
我尝试选择的列的hbase架构实际上是:
fogdecdb.location.latitute随以大写“l”
但是,它会在语句的select部分得到识别和正确解析,即使它不正确(从字典/字符串匹配的Angular 来说),并且在where部分它也不会再被识别。
该问题已报告给演习邮件列表。