2016-10-13 6 views
2

データフレームを起動してBinaryObjectのキャッシュを作成していて、その着火キャッシュでSQLを実行したいとします。ここでBinaryObjectsのIgniteキャッシュでSQLを実行

bankは、三つのフィールド(ID、名前、年齢)が含まれてデータフレームである私のコードです:

val ic = new IgniteContext(sc,() => new IgniteConfiguration()) 
    val cacheConfig = new CacheConfiguration[BinaryObject, BinaryObject]() 
    cacheConfig.setName("test123") 
    cacheConfig.setStoreKeepBinary(true) 
    cacheConfig.setIndexedTypes(classOf[BinaryObject], classOf[BinaryObject]) 

    val qe = new QueryEntity() 
    qe.setKeyType(TestKey) 
    qe.setValueType(TestValue) 
    val fields = new java.util.LinkedHashMap[String, String]() 
    fields.put("id", "java.lang.Long") 
    fields.put("name", "java.lang.String") 
    fields.put("age", "java.lang.Int") 
    qe.setFields(fields) 
    val qes = new java.util.ArrayList[QueryEntity]() 
    qes.add(qe) 

    cacheConfig.setQueryEntities(qes) 

    val cache = ic.fromCache[BinaryObject, BinaryObject](cacheConfig) 

    cache.savePairs(bank.rdd, (row: Bank, iContext: IgniteContext) => { 
     val keyBuilder = iContext.ignite().binary().builder("TestKey"); 
     keyBuilder.setField("id", row.id); 
     val key = keyBuilder.build(); 

     val valueBuilder = iContext.ignite().binary().builder("TestValue"); 
     valueBuilder.setField("name", row.name); 
     valueBuilder.setField("age", row.age); 
     val value = valueBuilder.build(); 
     (key, value);   
    }, true) 

今、私はこのようなSQLクエリを実行しようとしています:

cache.sql("select age from TestValue") 
私はWRO何をやっている

Caused by: org.h2.jdbc.JdbcSQLException: Column "AGE" not found; SQL statement: 
select age from TestValue [42122-191] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:345) 
    at org.h2.message.DbException.get(DbException.java:179) 
    at org.h2.message.DbException.get(DbException.java:155) 
    at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147) 
    at org.h2.command.dml.Select.prepare(Select.java:852) 

:次の例外で失敗している

ここに?

答えて

3

フィールドageの種類が間違っている、それは次のようする必要があります。

fields.put("age", "java.lang.Integer") 
関連する問題