【发布时间】:2017-07-28 05:17:25
【问题描述】:
我有一个 scala 数组 "visitedArray",其值如下:
Array(
(Map(url -> http://www.tumblr.com/tagged/abc), Map(visited -> true)),
(Map(url -> http://www.tumblr.com/tagged/random-blog), Map(visited -> true)),
(Map(url -> http://www.livestream.com/forum/1),Map(visited -> false))
....
但是,我想将其转换为 String, Map[String,Any] 并希望结果如下所示:
(
(http://www.tumblr.com/tagged/kate-beckett, Map(visited -> true),
(http://www.tumblr.com/tagged/random-blog), Map(visited -> true)
....
我试过了:
val testRdd = sc.parallelize(visitedArray)
val formatedRdd = testRdd.map(t => (t._1("url"), t._2))
但是,它不会返回所需的格式。它返回:
Array(
(http://www.tumblr.com/tagged/kate-beckett, Map(visited -> true),
(http://www.tumblr.com/tagged/random-blog), Map(visited -> true)
....
如何在没有 Array() 的情况下实现我想要的(转换为 String、Map[String,Any]?
【问题讨论】:
-
你想要一个数组还是一个RDD?
-
我希望将数组转换为 RDD。 -> 数组到 [String, Map[String,Any]]
-
我不完全确定您为什么需要 Spark。您是否从其他 RDD 获得这些值?
-
是的,我从 RDD 获取这些值。我有数百万这样的价值观。以上只是一个例子。
-
也许我之前不是很清楚,但我想要一个 RDD[String, Map[String,Any]] 或 RDD[String, Map[String,Boolean]]
标签: arrays scala apache-spark rdd