处理scala列表时出错

处理scala列表时出错,scala,apache-spark,Scala,Apache Spark,def列车畅销书(事件:RDD[BuyEvent],n:Int,itemStringIntMap:BiMap[String,Int]):Map[String,Array[(Int,Int)]={ val itemTemp=事件 //将项从字符串映射到整数索引 .平面图{ 如果itemStringIntMap.contains(item)=> 一些((itemStringIntMap(项目),类别),计数) 案例=>无 } //缓存以供下次使用 .cache() 列表处理 你的列表处理似乎还可以。

def列车畅销书(事件:RDD[BuyEvent],n:Int,itemStringIntMap:BiMap[String,Int]):Map[String,Array[(Int,Int)]={ val itemTemp=事件 //将项从字符串映射到整数索引 .平面图{ 如果itemStringIntMap.contains(item)=> 一些((itemStringIntMap(项目),类别),计数) 案例=>无 } //缓存以供下次使用 .cache()

列表处理 你的列表处理似乎还可以。我做了一个小的复查

def main( args: Array[String] ) : Unit = {

  case class JString(x: Int)
  case class CompactBuffer(x: Int, y: Int)

  val l = List( JString(2435), JString(3464))
  val tuple: (List[JString], CompactBuffer) = ( List( JString(2435), JString(3464)), CompactBuffer(1,4) )

  val result: List[(JString, CompactBuffer)] = tuple._1.map((_, tuple._2))
  val result2: List[(JString, CompactBuffer)] = {
    val l = tuple._1
    val cb = tuple._2
    l.map( x => (x,cb) )
  }

  println(result)
  println(result2)
}
结果是(如预期的那样)

进一步分析 如果这不能解决您的问题,则需要进行分析:

  • JStream(来自org.json4s.JsonAST?)和CompactBuffer(我想是Spark)的类型在哪里
  • 创建
    配对的代码的外观如何?您到底在做什么?请提供代码摘录

我看到您也将此信息发布到scala用户列表()和scala语言列表中。这是一个适合scala用户的问题,但不适合scala语言。您如何初始化RDD?另外,请注意,您不能以访问元组的方式将其索引到RDD中(例如
。\u 1
\u 2
)。你必须应用转换才能做到这一点。亲爱的Rohan,是的,我想我必须应用转换,你能帮我吗?非常感谢。亲爱的Martin,是的,问题仍然存在。你的问题:是的,来自org.json4s.JsonAST和Spark。我想我必须进行转换,目前是“列表(JString(2435),JString(3464))”我想字符串不是一个列表。你能帮我吗?非常感谢。话说回来,请发布所有代码,这是重现你的问题所必需的。(编辑你发布的问题!)亲爱的Martin,我添加了我所有的代码。请看一看,谢谢!请编辑你的原始问题并输入代码(包括导入等)在那里!我得到了这个错误:found:org.apache.spark.rdd.rdd[String],required List[JString]。
def main( args: Array[String] ) : Unit = {

  case class JString(x: Int)
  case class CompactBuffer(x: Int, y: Int)

  val l = List( JString(2435), JString(3464))
  val tuple: (List[JString], CompactBuffer) = ( List( JString(2435), JString(3464)), CompactBuffer(1,4) )

  val result: List[(JString, CompactBuffer)] = tuple._1.map((_, tuple._2))
  val result2: List[(JString, CompactBuffer)] = {
    val l = tuple._1
    val cb = tuple._2
    l.map( x => (x,cb) )
  }

  println(result)
  println(result2)
}
List((JString(2435),CompactBuffer(1,4)), (JString(3464),CompactBuffer(1,4)))