【发布时间】:2015-10-24 21:13:29
【问题描述】:
我在与其他用户共享的集群上使用 Spark。因此,仅根据运行时间来判断我的哪个代码运行效率更高是不可靠的。因为当我运行更高效的代码时,其他人可能会运行大量数据,从而使我的代码执行更长时间。
所以我可以在这里问两个问题:
-
我正在使用
join函数加入2RDDs,并且我在使用join之前尝试使用groupByKey(),如下所示:rdd1.groupByKey().join(rdd2)似乎花了更长的时间,但是我记得当我使用 Hadoop Hive 时,group by 使我的查询运行得更快。由于 Spark 使用惰性评估,我想知道
groupByKey在join之前是否会使事情变得更快 -
我注意到Spark有一个SQL模块,到现在还真没时间去尝试,请问SQL模块和RDD SQL类函数有什么区别?
【问题讨论】:
-
以后请不要同时发两个问题。
-
我认为现在编辑第二个问题还为时不晚。 @Cherry Wu,你能接受吗?
-
您希望 rdd1 和 rdd2 中都有重复的键吗?
-
@DanielDarabos,我不介意您是否添加第二个问题。我发现 Spark SQL 描述 spark.apache.org/docs/latest/sql-programming-guide.html,
Spark SQL is a Spark module for structured data processing. Unlike the basic Spark RDD API, the interfaces provided by Spark SQL provide Spark with more information about the structure of both the data and the computation being performed. Internally, Spark SQL uses this extra information to perform extra optimizations.在这里,我猜“更多信息”意味着数据像关系数据表一样组织
标签: apache-spark pyspark rdd pyspark-sql