DataSet javaRDD()性能

时间:2017-08-19 14:51:13

标签: java performance apache-spark cassandra apache-spark-sql

我正在使用CassandraSpark应用中的Spark SQL检索数据。数据检索为DataSet。但是,我需要使用dataset函数将此JavaRDD转换为javaRDD()。它有效,但需要大约2个小时。是否有一些参数需要调整以增加这个时间?

2 个答案:

答案 0 :(得分:2)

Dataset APIs构建于SparkSQL引擎之上,它使用Catalyst生成优化的逻辑和物理查询计划。在R, Java, Scala,Python DataFrame/Dataset APIs之间,所有关系类型查询都经历相同的代码优化器,从而提供空间和速度效率。虽然Dataset[T]类型的API针对数据工程任务进行了优化,但untyped Dataset[Row](别名为DataFrame)更快,适合进行交互式分析。

有关详细信息Spark RDD vs Dataset performance

enter image description here

答案 1 :(得分:0)

弹性分布式数据集(RDD)是Spark框架的主要抽象,而Spark SQL(用于结构化数据处理的Spark模块)为Spark提供了有关数据和计算结构的更多信息。执行,因此使用此额外信息执行额外的优化。

直到Spark 1.6,RDD用于执行比其Spark SQL对应的DataFrame(https://community.hortonworks.com/articles/42027/rdd-vs-dataframe-vs-sparksql.html)更好,但是,Spark 2.1升级使Spark SQL更加高效

https://i.stack.imgur.com/TmhXf.png