Apache spark javax.cache.CacheException:已为cache:test禁用索引。在CacheConfiguration上使用setIndexedTypes或setTypeMetadata方法来启用

Apache spark javax.cache.CacheException:已为cache:test禁用索引。在CacheConfiguration上使用setIndexedTypes或setTypeMetadata方法来启用,apache-spark,apache-zeppelin,ignite,Apache Spark,Apache Zeppelin,Ignite,有人提出了类似的问题。然而,在这个问题中,如果需要的话,我尝试包含更多的细节和可执行代码。在这里,我通过齐柏林飞艇执行这段代码 以下是齐柏林飞艇笔记本的代码片段: Notebook-1-存储一些数据以点燃缓存 val ic = new IgniteContext(sc, () => new IgniteConfiguration()) val cacheConfig = new CacheConfiguration[Int, Int]() cacheConfig.setName(

有人提出了类似的问题。然而,在这个问题中,如果需要的话,我尝试包含更多的细节和可执行代码。在这里,我通过齐柏林飞艇执行这段代码

以下是齐柏林飞艇笔记本的代码片段:

Notebook-1-存储一些数据以点燃缓存

val ic = new IgniteContext(sc, () => new IgniteConfiguration())

val cacheConfig = new CacheConfiguration[Int, Int]()
    cacheConfig.setName("test")
    cacheConfig.setIndexedTypes(classOf[Int], classOf[Int])

val cacheRdd = ic.fromCache[Int,Int](cacheConfig)

cacheRdd.savePairs(sc.parallelize(1 to 10000, 10).map(i => (i, i)))
第二部分:从缓存中读取我们从notebook-1存储的一些数据

val ic = new IgniteContext(sc, () => new IgniteConfiguration())
val cacheConfig = new CacheConfiguration[Int, Int]()
  cacheConfig.setName("partitioned")
  cacheConfig.setIndexedTypes(classOf[Int], classOf[Int])

val ic = new IgniteContext(sc, () => new IgniteConfiguration())

val cacheRdd = ic.fromCache(cacheConfig)
cacheRdd.sql("select _val from Integer")
第一个笔记本中的代码执行良好。然而,当执行第二个笔记本时,它失败了,出现了标题中提到的异常

完全例外:

javax.cache.CacheException: Indexing is disabled for cache: test. Use setIndexedTypes or setTypeMetadata methods on CacheConfiguration to enable.
  at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.validate(IgniteCacheProxy.java:831)
  at org.apache.ignite.internal.processors.cache.IgniteCacheProxy.query(IgniteCacheProxy.java:690)
  at org.apache.ignite.spark.IgniteRDD.sql(IgniteRDD.scala:147)
  ... 64 elided

也许您应该在创建新缓存时尝试上述代码。我认为它指的是最初创建缓存时使用的一些旧缓存配置。或者销毁缓存并尝试使用相同的名称和上述配置重新创建它。

您可以导出这两个笔记本并提供它们吗?另外,请描述如何启动Spark、Ignite等并运行测试的步骤,以便我能够重现问题。