Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
Apache spark 如何转换RDD结构_Apache Spark_Rdd - Fatal编程技术网

Apache spark 如何转换RDD结构

Apache spark 如何转换RDD结构,apache-spark,rdd,Apache Spark,Rdd,如何转换 RDD[(String, (((A, B), C), D))] 到 我是否需要使用flatMapValues?我不知道如何使用它 有人能帮忙吗?您可以使用mapValues并从元组中选择值作为 rdd.mapValues(x => (x._1._1._1, x._1._1._2, x._1._2, x._2)) 这几乎是一个Scala问题,而不是Spark问题。或者,尝试以下模式匹配: rdd.mapValues { case (((a, b), c), d) =>

如何转换

RDD[(String, (((A, B), C), D))] 

我是否需要使用
flatMapValues
?我不知道如何使用它


有人能帮忙吗?

您可以使用
mapValues
并从元组中选择
值作为

rdd.mapValues(x => (x._1._1._1, x._1._1._2, x._1._2, x._2))

这几乎是一个Scala问题,而不是Spark问题。或者,尝试以下模式匹配:

rdd.mapValues { case (((a, b), c), d) => (a, b, c, d) }

mapValues
很重要,因为它维护RDD的分区器(如果有)。

是否使用模式匹配<代码>映射{case(x:String,((A,B,C),D))=>(x,(A,B,C,D)
}`
rdd.mapValues { case (((a, b), c), d) => (a, b, c, d) }