2017-09-05 65 views
0

我们正试图从星火RDD如下IgniteRDD saveValues太慢

def storeDataframeInCache(sc: SparkContext, rdd: RDD[Row]): Unit ={ 
var igniteContext: IgniteContext[String, Row] = new IgniteContext[String, Row](sc,() => IgniteConfig.getIgniteConf(true), false) 
var igniteRDD = igniteContext.fromCache("rdd") 
igniteRDD.saveValues(rdd) 
} 

这里saveValues创建点燃RDD需要太多的时间。

有没有更好的办法做到这一点?

在此先感谢!

+0

是否可以直接填充Ignite RDD或缓存而不创建Spark RDD?它更快地推动了工作。 – Denis

+0

感谢Denis的建议。我们使用Spark Dataframe进行转换和操作。在最后一步,我们需要将Spark Dataframe存储为IgniteRDD。为此,我们从Spark Dataframe获取Spark RDD。 – Raghav

回答

0

表现不佳可能有不同的原因。你应该找出问题出在Spark还是Ignite,并开始优化慢速问题。

缓存性能在很大程度上取决于其配置。集群中存储的相同数据的副本越多,其工作速度越慢。如果您希望缓存工作得更快,您应该选择分区模式而不是复制,并禁用备份。持久性也可能会对缓存的性能产生负面影响。您可以参考文档获取更多信息:https://apacheignite.readme.io/docs/performance-tips