我有一个从多个程序中读取的数据集.而不是每天多次将这个数据集读入内存,有没有办法让火花有效地缓存数据集,允许任何程序调用它? 最佳答案 RDD和数据集不能在应用程序之间共享(至少,没有官方API来共享内存)
但是,您可能对Data Grid感兴趣.查看Apache Ignite.您可以将数据加载到Spark,预处理并保存到网格.然后,在其他应用程序中,您只需从Ignite缓存中读取数据即可.
有一种特殊类型的RDD,名为IgniteRDD,它允许您像使用其他数据源一样使用Ignite缓存.当然,像任何其他RDD一样,它可以转换为数据集
它会是这样的:
val rdd = igniteContext.fromCache("igniteCache")
val dataFrame = rdd.toDF
有关IgniteContext和IgniteRDD的更多信息,请参见here