微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – Spark:缓存RDD / DF以在多个程序中使用

我有一个从多个程序中读取的数据集.而不是每天多次将这个数据集读入内存,有没有办法让火花有效地缓存数据集,允许任何程序调用它?

解决方法

RDD和数据集不能在应用程序之间共享(至少,没有官方API来共享内存)

但是,您可能对Data Grid感兴趣.查看Apache Ignite.您可以将数据加载到Spark,预处理并保存到网格.然后,在其他应用程序中,您只需从Ignite缓存中读取数据即可.

有一种特殊类型的RDD,名为IgniteRDD,它允许您像使用其他数据源一样使用Ignite缓存.当然,像任何其他RDD一样,它可以转换为数据集

它会是这样的:

val rdd = igniteContext.fromCache("igniteCache")
val dataFrame = rdd.toDF

有关IgniteContext和IgniteRDD的更多信息,请参见here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐