繁体   English   中英

纯Spark与Spark SQL在HDFS上查询数据

[英]Pure spark vs spark SQL for quering data on HDFS

我在hdfs群集上有(表格)数据,并且需要对其进行一些稍微复杂的查询。 我希望将来会与其他数据一起多次面对同样的情况。 因此,问题是:

在执行此类任务时,选择使用(纯)Spark和在哪里使用Spark-SQL时要考虑哪些因素?

这是我可能想到的选择因素:

  1. 熟悉语言 :就我而言,我比DB专家更像是数据分析员,所以这会让我产生火花:与在Java / Scala中(有效)实现数据选择相比,我更愿意思考在SQL中。 但是,这主要取决于查询。

  2. 序列化 :我认为可以运行Spark-SQL查询,而无需将home-made-jar + dep发送给spark工作者(?)。 但是,返回的数据是原始数据,应在本地进行转换。

  3. 效率 :我不知道两者之间有什么区别。

我知道这个问题对于SO来说可能太笼统了,但也许不是。 那么,有更多知识的人可以提供一些见解吗?

关于第3点,根据您的输入格式,当您使用纯Spark与Spark SQL时,扫描数据的方式可能会有所不同。 例如,如果您的输入格式有多个列,但只需要很少的列,则可以跳过使用Spark SQL的检索,而在纯Spark中实现起来则比较棘手。

最重要的是,Spark SQL具有查询优化器,当使用DataFrame或查询语句时,生成的查询将通过优化器,以便更高效地执行。

Spark SQL不排除Spark; 组合使用可能是最佳效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM