我在IgniteRDD中保存了一些Spark数据集,其中key和Value都作为BinaryObject运行,并且它也可以正常使用Ignite代码和%ignite interpreter示例进行查询。
%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
它失败并显示“ID的解析类失败:-1422444403”
对我而言,两种方式似乎都有区别在于我首先指定了带有KeepBinary(),在%ignite.ignitesql中可以做多少相似,这样可以直接使用sql
答案 0 :(得分:0)
现在无法做到这一点,我创建了一张修复此问题的凭单:https://issues.apache.org/jira/browse/IGNITE-4141
但无论如何,我建议在使用Ignite时避免select *
查询,因为结果集将包含代表完整对象的预定义_key
和_val
字段。最好在结果集中明确列出所需的字段,这样就不会获取不需要的数据。