Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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_Scala_Rdd - Fatal编程技术网

如何在Scala中解析RDD

如何在Scala中解析RDD,scala,rdd,Scala,Rdd,我有这个RDD: Array[(String, String)] = Array((http://code.google.com/webtoolkit/doc/latest/DevGuideOptimizing.html,{(https://www.google.com/accounts/Login?continue=http%3A%2F%2Fcode.google.com%2Fwebtoolkit%2Fdoc%2Flatest%2FDevGuideOptimizing.html&amp

我有这个RDD:

Array[(String, String)] = Array((http://code.google.com/webtoolkit/doc/latest/DevGuideOptimizing.html,{(https://www.google.com/accounts/Login?continue=http%3A%2F%2Fcode.google.com%2Fwebtoolkit%2Fdoc%2Flatest%2FDevGuideOptimizing.html&followup=http%3A%2F%2Fcode.google.com%2Fwebtoolkit%2Fdoc%2Flatest%2FDevGuideOptimizing.html)}))
在值部分,值的形式如下:
{}
{(value1)}
{(value1)、(value2)、(value3)}

我不知道如何解析这些值并列出它们,然后将其映射到键


因为
{}
不是数组或列表。

如果您有类型为
RDD[Array[(String,String)]]
的数据,则可以执行以下操作

rdd.map(x => x.flatMap(y => y._1.replaceAll("[{()}]", "").split(",") ++ y._2.replaceAll("[{()}]", "").split(",")))
得到

RDD[Array[String]]
其中每个
(String,String)
元组在
数组[String]

已更新

你下面的评论说

数据类型是org.apache.spark.rdd.rdd[(String,String)],而不是rdd[Array[(String,String)]

在这种情况下,可以忽略数组的内部映射,您可以按如下操作

rdd.map(x => x._1.replaceAll("[{()}]", "").split(",") ++ x._2.replaceAll("[{()}]", "").split(","))

您应该得到与上面相同的结果。

数据类型是
org.apache.spark.rdd.rdd[(字符串,字符串)]
而不是
rdd[Array[(字符串,字符串)]]