- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有任何可靠且有效的方法来确保 impala 查询结果得到完全具体化,而无需将结果打印到控制台?作为示例,我将使用 INNER JOIN 查询。
具体化查询结果的明显方法是创建表作为选择。
CREATE TABLE t3 STORED AS PARQUET AS SELECT t1.* FROM t1 INNER JOIN t2 ON t1.id=t2.id;
它的问题是它写入磁盘因此效率低下。我正在寻找执行查询并确保结果具体化的最有效方式。
例如,在 Spark 中,我可以使用 .cache
方法,然后使用 .count
来确保实现查询。
val t3 = t1.join(t2, "id")
t3.cache
t3.count
我可以尝试使用子查询来解决问题。
SELECT COUNT(*) FROM (SELECT t1.* FROM t1 INNER JOIN t2 ON t1.id=t2.id) t3;
但我仍然需要确保子查询被具体化,如果查询优化器发现我只对总数感兴趣,这并不明显。也许有一些提示可以强制执行该操作或其他技巧?
最佳答案
据我所知,你不能用 Impala 做到这一点,而且永远也做不到。
Cloudera 专门设计该工具以支持 BI 工具,例如 Tableau、Qlik、MicroStrategy 等,但不支持 ad hoc ETL 脚本。
另一方面,Hive 现在附带一个可能满足您需要的“HPL-SQL”过程语言包装器。注意事项:
HPL-SQL 工具声称它也支持 Impala 查询,但我从未调查过该声明。可以解决您的问题,作为一种笨拙的解决方法。
引用资料:
HIVE-11055 (PL/HQL 工具贡献了 Hive 代码库)
HPL/SQL website
说到解决方法,为什么不按照您自己的建议使用 Spark?您可以使用 Spark 原生 Parquet 库或使用与 Impala 守护程序的自定义 JDBC 连接来阅读 Impala/Hive 表。从本质上讲,它类似于 HPL/SQL 解决方案。
关于cloudera-cdh - 确保 Impala 查询得到具体化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38402974/
是否可以在 impala 中同时执行多个查询?如果是,impala 是如何处理的? 最佳答案 我当然会自己做一些测试,但我无法执行多个查询:我正在使用 Impala 连接,并从 .sql 文件中读取查
我一直在寻找使用 Hortonworks 2.1 安装可用的 Storm,但为了避免在 Cloudera 安装(其中包含 Spark)之外安装 Hortonworks,我试图找到一种在 Clouder
正常情况下,我可以show partitions 在 hive 中。但是当它是 Parquet 表时,hive 无法理解它。我可以转到 hdfs 并检查目录结构,但这并不理想。有没有更好的方法来做到这
我想知道用于停止和启动 cloudera CDH5.2 集群的命令行。 原因,我正在编写一个自动化脚本来运行一些基准测试,并希望在开始每个基准测试之前停止和启动集群。 我已经看到停止 CDH 集群并不
由于嵌入式 PostgreSQL 数据库的问题,我无法访问 Cloudera Manager UI。 Web UI 向我显示: HTTP ERROR 500 Problem accessing /cm
我最近下载了 Cloudera CDH 5.3,现在我需要访问 HUE Web UI 门户。当我提供属于 Cloudera admin/admin 的默认用户名和密码时,它不起作用。我现在无法登录 H
我有两台装有 CentOS 6.5 的 PC client86-101.aihs.net 80.94.86.101 client86-103.aihs.net 80.94.86.103 clouder
当我显示表格时,我在 Impala 中看到一个表格“测试”; 我想复制“test”表,使其完全相同,但命名为“test_copy”。我可以执行 impala 查询来执行此操作吗?如果没有,我该怎么做?
如何在不使用 Cloudera 管理器的情况下在 100 节点集群上安装 Cloudera CDH?在集群中的每个节点上手动安装和配置 CDH 是一项艰巨的任务。使用哪些工具和技术来自动化生产中的任务
我启动了cloudera-scm-agent,但它失败了。我看到来自 /opt/cm-5.7.0/log/cloudera-scm-agent 的日志。它说 /opt/cm-5.7.0/lib64/c
我正在使用 ubuntu 12.04 64 位,我成功地安装并运行了单节点示例 hadoop 程序。 我在我的 ubuntu 上安装 cloudera 管理器时出现以下错误 Refreshing re
我已经关注了这里的博客(如下所述)并下载了包裹并按照要求放置。请告诉我是否有人已安装以及步骤。 (https://www.cloudera.com/documentation/spark2/lates
我正在尝试使用 Cloudera Manager 3.7.x 在具有 RHEL 5.5 的集群上安装 CDH3U5。但是由于以下错误,安装失败 - Error Downloading Packages
我正在尝试在 Ubuntu 12.04 LTS(64 位)中使用 Cloudera Manager 安装 CDH5。我正在按照 Cloudera link 中提到的步骤进行操作.我无法为安装 CDH5
我正在使用 Cloudera Quickstart VM 5.3.0(在 Windows 7 上的 Virtual Box 4.3 中运行)并且我想学习 Spark(在 YARN 上)。 我启动了 C
Cloudera 声称拥有快速启动方法。我注意到这对我不起作用。 当我调用 Spark-shell 时,我得到: ... WARN metastore.ObjectStore: Version inf
我有cloudera 5.7,我也有Cloudera Manager。 在目录/etc/hadoop下,我看到了三个子目录。 /etc/hadoop/conf /etc/hadoop/conf.clo
我是 Docker 和 Hadoop 系统的新手。我已经在 Ubuntu 16.04 中安装了 Docker,并在一个新的 Docker 容器中运行来自 Cloudera 的 Hadoop 镜像。但是
我必须区分 Cloudera 包裹过程和编写 cooking 书或厨师的食谱以在集群中安装包。 因此,我正在寻找 Parcel 与 Chef 之间的优势和劣势,反之亦然。 最佳答案 如果您使用的是 C
我对 impala 中的数据局部性有疑问,假设我有 10 个数据节点的集群(每个数据节点上都有 impalad),如果我在 impala 中执行查询 SELECT * FROM big_table w
我是一名优秀的程序员,十分优秀!