我们有一个项目,当前正在使用Shell脚本和Hive执行引擎:TEZ。
出于POC目的,我们正在尝试将所有配置单元查询转换为sparkSql代码。
一位客户回来了一个问题,为什么我们需要spark应用程序,因为我们可以将spark设置为执行引擎,并且可以运行常规的shell脚本和oozie工作流程。
如果有人已经完成了POC,您能否解释一下区别,更重要的是哪种方法在性能方面更快。
答案 0 :(得分:0)
如果您已经在hive中实现了业务逻辑并且已在生产中安排了所有业务逻辑,则最好将执行引擎设置为hive中的spark并使用它(最佳和最安全的选择)。 应该不会对性能造成影响,因为用于查询的优化器仍然保持不变(催化剂),因此创建的所有逻辑和物理执行计划仍然保持不变。
如果您需要为使用HQL无法实现的转换编程,则可以使用Scala / Pyspark脚本来创建spark应用程序。