Apache使用自定义类点燃RDD

时间:2018-01-23 14:38:00

标签: java scala apache-spark ignite

我是Ignite的新手,在关注Ignite Spark Tutorial中的示例时,我试图查看类似的步骤是否可以与Query中的自定义类型(案例类)一起使用,而不是IgniteRDD[Int, CastomClass]。我能够创建RDD并在其上调用IgniteRDD[Integer, Integer],但是我无法再将数据读回来。下面是一些示例代码,我不会向您介绍文本处理RDD转换步骤的详细信息

贮藏

savePairs

Retreiving

import org.apache.ignite.spark._
import org.apache.ignite.configuration._
val ic = new IgniteContext(sc, "examples/config/spark/example-shared-rdd.xml", true)

case class CustomType(tid: String, subtid: String, value: Double)

val cacheRdd = ic.fromCache[Int, CustomType]("TEST")
// numbered custom entries is a Spark RDD[Int, CustomType]
cacheRdd.savePairs(numberedCustomEntries)

这导致了一个很长的堆栈跟踪,它的主旨是找不到我的自定义类

cachedRdd.first 。我想做什么甚至可能?

2 个答案:

答案 0 :(得分:0)

首先,我建议使用新文档而不是旧文档:https://apacheignite-fs.readme.io/docs/ignitecontext-igniterdd

我在这里看到2个可能的问题:

    配置文件中的
  • ,对于缓存配置,您使用CustomType替换了java.lang.Integer而不是使用包替换了全名。

  • 您在某些节点的类路径中没有类CustomType。

答案 1 :(得分:0)

事实证明我的自定义JAR需要住在$IGNITE_HOME/libs

  

阶> sharedRDD.first   [10:35:57]拓扑快照[ver = 3,servers = 2,clients = 1,CPUs = 8,heap = 2.8GB]   res1:(Int,CustomData)=(242691,CustomData [Id = XYZ,sId = XYZ001,value = 6.0E8])