如何在 zeppelin 的 %ignite.ignitesql 解释器中提及 withkeepBinary

how to mention withkeepBinary in %ignite.ignitesql interpreter in zeppelin

我在 IgniteRDD 中保存了一些 Spark 数据集,键和值都作为 BinaryObject,它工作正常,我也可以使用 Ignite 代码和下面的 %ignite 解释器示例进行查询。

%ignite
import org.apache.ignite._
import org.apache.ignite.binary._
import org.apache.ignite.cache.query._
import org.apache.ignite.configuration._
import scala.collection.JavaConversions._

val cache: IgniteCache[BinaryObject, BinaryObject] = ignite.cache("test123")

val qry = new SqlFieldsQuery(
"select _val from testValue", 
true)
val res = cache.withKeepBinary().query(qry).getAll()

collectionAsScalaIterable(res).foreach(println _)

但是当我尝试使用 %ignite.ignitesql 解释器进行查询时

%ignite.ignitesql 
select * from testValue

失败 "Failed resolve class for ID: -1422444403"

对我来说,这两种方式的不同之处在于,首先我指定了 withKeepBinary() ,如何在 %ignite.ignitesql 中完成相似,以便可以直接使用 sql

现在这是不可能的,我创建了一个票来解决这个问题:https://issues.apache.org/jira/browse/IGNITE-4141

但无论如何,我建议在使用 Ignite 时避免使用 select * 查询,因为结果集将包含表示完整对象的预定义 _key_val 字段。最好在结果集中明确列出您需要的字段,这样您就不会获取不需要的数据。