Apache Spark SQL和MongoDB有什么区别?

5
我只有使用RDBMS PostgresSQL的经验,但我对Apache Spark和MongoDB还很陌生。因此,我有以下疑问,请帮助解答:
1) Apache Spark SQL和MongoDB有什么区别? 2) 在哪些场景/领域中需要使用SparkSQL或MongoDB或两者结合使用? 3) Apache Spark是类似于MongoDB、cassandra等的替代品吗? 4) 我在MongoDB中有多个TB的数据,我想进行数据分析并提供报告。
请分享您的知识并给予建议。
谢谢, Shankar S
2个回答

9

1) Apache Spark: Apache Spark可以在SQL查询上进行大数据并行计算操作。

MongoDB: MongoDB是一个文档存储数据库,与Spark不能相比较,因为Spark是一个计算引擎而不是存储数据库。

2) SparkSQL适用于处理导入到Spark集群中的结构化数据, 在您拥有数百万个数据进行大型计算时非常理想。Mongodb适用于需要NoSQL功能的情况(它具有完整的NoSQL功能,可与SparkSQL进行比较)。

3) Apache Spark用于不同的目的,不能将其替换为MongoDB或Cassandra。它就像一个计算引擎,可为您提供大型数据集上的预测结果。

4) 使用第三方服务如SLAM DATA http://slamdata.com/ 可以应用mongodb分析,也可以使用spark data-frame从MongoDB读取数据。


4
这是两个不同而广泛的问题,但我正在努力回答:
1)Apache Spark SQL和MongoDB之间有什么区别?
Spark SQL是由Apache Spark提供的库,用于在SQL查询中进行大数据并行计算操作。 MongoDB是文档存储,本质上是一个数据库,因此不能与Spark进行比较,后者是计算引擎而不是存储。
2)我需要在哪些地方/情景/领域中使用SparkSQL或MongoDB或组合方式?
SparkSQL适用于处理导入Spark集群的结构化数据。 Mongodb适用于需要NoSQL功能的情况(它具有完全的NoSQL功能,与SparkSQL相比)。
3)Apache Spark是否替代了mongoDB、cassandra等?
不完全是因为它们处于不同的范围内。 Apache Spark不是替换,而可以称为Map-reduce的后继者,用于对大型数据集进行并行计算。
4)我在MongoDB中有多个TB的数据,我想要做数据分析,然后需要提供报告。
使用spark dataframe使用jdbc驱动程序从MongoDB中读取数据,然后您可以在dataframe上运行一些Spark SQL查询,然后可以使用其他可视化工具(如pyplot)生成报告。
谢谢, 查尔斯。

谢谢Charles。 在我的情况下,MongoDB集群中有数百万条记录。 从这些记录中,我想要进行聚合、计数、求和、分组、排序等操作。 之后需要使用一些图形工具来展示聚合数据。 这是整体的工作流程。根据您提供的输入,我理解如下: 1)我需要将数据从MongoDB集群加载到Spark集群中。 2)然后我��要将数据从Spark集群中提取到SparkSQL中。 3)然后使用SparkSQL执行聚合、计数、求和、排序等操作。 4)完成聚合、求和、排序操作后,我需要将这些数据提供给图形工具,对吗? - Shankar S

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接