我知道多年前就有人问过这个问题,但我仍然想知道使用sparksql/hivecontext的真正目的。
spark方法提供了一种比内置mapreduce更通用的分布式方法。
我读了很多文章,声称mrway已经死了,spark是最好的(我知道我可以通过spark实现mr方法)。
当建议使用hivecontext查询数据时,我有点困惑。
实际上,从sparksql/hivecontext运行查询不意味着运行mr作业吗?是不是要回到正题上来?如果我不需要将查询结果封装在更复杂的代码中,这不是很好吗?
我错了吗?
1条答案
按热度按时间vulvrdjw1#
实际上,从sparksql/hivecontext运行查询不意味着运行mr作业吗?
它没有。事实上使用
HiveContext
或者SparkSession
使用“hive support”并不意味着与hive有任何连接,除了使用hive metastore。这种方法被许多其他系统使用,包括etl解决方案和数据库。最后:
hive是一个带有模块化组件的数据库。它支持相对丰富的权限系统、突变和事务。
spark是通用的处理引擎。尽管有sqlish组件,但它并不试图成为一个数据库。