Apache Ignite需要永远保存Spark上的值

时间:2017-06-11 22:32:22

标签: apache-spark dataframe rdd ignite

我正在使用Apache Ignite和Spark来保存Spark的结果,但是,当我执行saveValues时,它需要很长时间,并且计算机的CPU和风扇速度变得疯狂。我有3GHz CPU和16 GB内存。

我有一个RDD,我在其中映射最终的DataFrame:

val visitsAggregatedRdd :RDD[VisitorsSchema] = aggregatedVenuesDf.rdd.map(....)
println("COUNT: " + visitsAggregatedRdd.count().toString())
visitsCache.saveValues(visitsAggregatedRdd)

行总数为71,这意味着Spark已经完成了处理数据并且它非常小; 71行,每一行都是小对象,数字很少,字符串非常短。那么为什么要访问“密码保存”和“#39;正在花费这个无限的时间和处理!?

1 个答案:

答案 0 :(得分:0)

原来这是Spark Dataframe分区中的一个问题。 Spark节省了那些保存在6000个分区中的71行!一个简单的解决方案是在保存Ignite之前减少分区数:

df = df.coalesce(1)