我有一个复杂的SQL查询,用于在Hadoop Hive中获取数据。
我已经开始阅读关于Spark和PySpark的文章了。这些工具似乎提高了性能。换句话说,如果我必须为我的数据查询Hive,我从Spark获得的任何性能改进都只会来自我从Hive检索数据后应用于数据的转换。
我对这些技术的理解正确吗?
发布于 2019-12-21 11:12:29
最终,这取决于您的Hive执行引擎、文件格式和分区/bucketing。这不是简单的蜂巢vs火花。例如,使用Spark读取CSV文件所需的资源要比配置单元中经过分区、快速压缩的Parquet或ORC表所需的资源多
抛开数据格式不谈,如果Spark和Hive查询在YARN中运行,它们将占用大致相同的资源来计算数据,尽管Spark将允许您对结果集执行更多操作,因为它是以编程方式定义的
您还可以让Hive使用Spark而不是Mapreduce作为执行引擎,或者使用Tez作为另一种选择
Spark只使用Hive元存储来查找数据,因此在您使用的数据库引擎/客户端上的性能也不同(Spark、Presto和直接JDBC或Thrift)
https://stackoverflow.com/questions/59420778
复制相似问题