【问题标题】:IgniteRdd's savepairs method for reading parquet files用于读取 parquet 文件的 IgniteRdd 的 savepairs 方法
【发布时间】:2016-08-22 11:16:14
【问题描述】:

为了读取 parquet 文件并将项目存储到缓存中,我做了一个小 impl。于是我写了:

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(values)”给出了编译错误:

找到:org.apache.spark.rdd.RDD[(字符串, java.util.List[Map[String,Nothing]])] 需要: org.apache.spark.rdd.RDD[(Nothing, Nothing)] 注意:(字符串, java.util.List[Map[String,Nothing]]) >: (Nothing, Nothing), 但是类 RDD 在类型 T 中是不变的。您可能希望将 T 定义为 -T。 (SLS 4.5) sharedRdd.savePairs(值)

我找不到任何方法来克服这个错误。

有什么想法吗?

【问题讨论】:

    标签: caching apache-spark rdd ignite


    【解决方案1】:

    您应该使用正确的输入创建IgniteRDD

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-07
      • 1970-01-01
      • 2018-12-13
      • 2020-09-14
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      相关资源
      最近更新 更多