我们需要获取 Ignite 队列的内容,该队列将大型数据集作为 Spark 数据帧保存在集群中。
目前我们这样做如下。
var array: Array[Row] = Array()
array = igniteQueue.toArray(array)
但是这会将 igniteQueue 的所有分布式内容作为数组带到单个边缘节点,从而导致溢出异常。
有没有办法将 igniteQueue 数据作为 Spark 数据帧获取? 以便分发数据
提前致谢!!
检查 IgniteContext 和 IgniteRDD 文档 - 它是 Spark-Ignite 集成的主要入口点。
由于 IgniteRDD 是 Ignite 缓存的实时视图,因此无需从 Ignite 显式将数据加载到 Spark 应用程序。所有RDD方法都可以在创建IgniteRDD实例后立即使用。
例如,以下 Scala 代码将查找包含单词"Ignite"的所有值:
val cache = igniteContext.fromCache("partitioned")
val result = cache.filter(_._2.contains("Ignite")).collect()
另外,请查看此 Java 示例