2016-08-22 53 views
0

爲了讀取實木複合地板文件並將項目存儲到緩存中,我做了一個小小的impl。所以我寫了:IgniteRdd的savepairs讀取實木複合地板文件的方法

val df= sqlContext.read. 
     parquet(hdfsFolder). 
     select("a","b", "c", "d", "e", "f") 
val columnsSeq= Seq("a","b", "c", "d", "e", "f") 

val values = df.map(row => (row.getAs[String]("a"), row.getValuesMap(columnsSeq))). 
    groupByKey(1024). 
    map(row => (row._1 , row._2.toList.asJava)) 

//put them into cache 

val igniteContext = new IgniteContext(sc, cacheConfigPath) 

val sharedRdd = igniteContext.fromCache(cacheName) 

sharedRdd.savePairs(values) 

但最後一行 「sharedRdd.savePairs(值)」 給出了compileerror:

found : org.apache.spark.rdd.RDD[(String, java.util.List[Map[String,Nothing]])] required: org.apache.spark.rdd.RDD[(Nothing, Nothing)] Note: (String, java.util.List[Map[String,Nothing]]) >: (Nothing, Nothing), but class RDD is invariant in type T. You may wish to define T as -T instead. (SLS 4.5) sharedRdd.savePairs(values)

我無法找到克服這種錯誤的任何方式。

任何想法?

回答

0

您應該創建IgniteRDD適當打字:

val sharedRdd = igniteContext.fromCache[String, java.util.List[Map[String,Nothing]]](cacheName) 
相關問題