我正在使用Cassandra
从Spark
应用中的Spark SQL
检索数据。数据检索为DataSet
。但是,我需要使用dataset
函数将此JavaRDD
转换为javaRDD()
。它有效,但需要大约2个小时。是否有一些参数需要调整以增加这个时间?
答案 0 :(得分:2)
Dataset APIs
构建于SparkSQL
引擎之上,它使用Catalyst
生成优化的逻辑和物理查询计划。在R, Java, Scala,
或Python DataFrame/Dataset APIs
之间,所有关系类型查询都经历相同的代码优化器,从而提供空间和速度效率。虽然Dataset[T]
类型的API针对数据工程任务进行了优化,但untyped Dataset[Row]
(别名为DataFrame
)更快,适合进行交互式分析。
答案 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更加高效