我尝试比较一个包含30,000条RDD和DataSet记录的表的cassandra save。我发现与RDD相比,数据集保存速度慢了10倍。 该表有4个分区键。
Spark
我们使用了以下火花配置:
以下是相同的示例代码:
DSE Version :5.1.7
Spark version :2.0.1
Nodes:6( 20 cores each 6g)
Using Spark Standalone
答案 0 :(得分:3)
由于Dataframe和RDD方法都使用相同的底层保存代码,因此除非转换为DF类型的开销非常高,否则您不太可能看到如此显着的差异。在我们自己对数十亿行的测试中,我们发现速度差异只有几个百分点。
虽然30k记录是一个非常小的数量,任何数量的开销都可能变得相关,但我认为最可能的原因是在RDD和DF代码中where子句的查找方式不同。我会检查以确保它在DF代码中被正确推送(请参阅explain
以获取DF负载。)