Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 将RDD[Key,List[Value]]转换为RDD,并成对使用[Key,ValueFromList1],[Key,ValueFromList2]_Scala_Apache Spark - Fatal编程技术网

Scala 将RDD[Key,List[Value]]转换为RDD,并成对使用[Key,ValueFromList1],[Key,ValueFromList2]

Scala 将RDD[Key,List[Value]]转换为RDD,并成对使用[Key,ValueFromList1],[Key,ValueFromList2],scala,apache-spark,Scala,Apache Spark,我是新的火花和转变,所以需要一点帮助。我设法找到了相反的解决办法。当您将一个值放入列表并从中删除时。我想“展平”我猜键的值。我有一个类似RDD的映射,其中键是Int,值是字符串列表。我需要将键和列表中的每个值配对成一个RDD。您可以使用flatMap,然后将每个元素映射到一个元组,如下所示 val flattenedRDD = pairRDD.flatMap { case (i,l) => l.map( l => (i,l)) } 嘿,迈克,你提供的解决方案应该有效。但现在我在铸

我是新的火花和转变,所以需要一点帮助。我设法找到了相反的解决办法。当您将一个值放入列表并从中删除时。我想“展平”我猜键的值。我有一个类似RDD的映射,其中键是Int,值是字符串列表。我需要将键和列表中的每个值配对成一个RDD。

您可以使用flatMap,然后将每个元素映射到一个元组,如下所示

val flattenedRDD = pairRDD.flatMap { case (i,l)  => l.map( l => (i,l)) }

嘿,迈克,你提供的解决方案应该有效。但现在我在铸造方面有问题<代码>原因:java.lang.ClassCastException:org.apache.spark.sql.catalyst.expressions.GenericRowWithSchema无法转换为java.lang.String是否有可能正确转换为平面映射行?我不确定,但我必须查看您的代码,至少在代码失败时我不相信数据类型是您所说的。如果您发布您的代码片段,我可以帮助您
//加载到数据帧val matchesdd=MongoSpark.load[Match](spark,readConfig)//生成DF[Boolean,Seq[Player]]val tuplesararayiguess=matchesdd.rdd.map(elem=>{(elem.getAs[Boolean](“radiantWin”)、elem.getAs[Seq[PlayerMongo](“players”)//以及您建议的代码。在案件审理中失败了。flatMap({case(i,l)=>l.map(l=>(i,l))})
希望这会有所帮助。很抱歉编辑样式。无法在评论部分以任何其他方式找到问题(我猜)。当按名称从字段中获取值时,此转换不起作用,但按索引可以完美地工作。谢谢@mike的帮助