Scala地图创建

时间:2016-09-20 01:38:53

标签: scala apache-spark

我想创建一个包含10000个元素的地图,但所有元素都应该相同。

所以我希望地图看起来像这样:[(1,1)(1,1)(1,1)(1,1)(1,1)(1,1)(1,1)...]。我知道如何指定一系列值,然后从中创建一个映射,但是如何使用相同的重复值?

跟进问题:

RDD[(Int, Int)]List[(Int, Int)]之间有什么区别?我在做:

val rdd: RDD[(Int, Int)] = (1 to 10).map(i => (1,1)).toList

但是我遇到了类型不匹配错误。 我想要RDD[(Int, Int)]我提到的内容,我该怎么做?

2 个答案:

答案 0 :(得分:5)

按照其定义的地图不能有多个具有相同键的元素。根据你所说的你想要的,我猜你正在寻找一个元组列表。这将是(1 to 10000).map(i => (1,1)).toList

的内容

答案 1 :(得分:1)

地图只能包含一个带有任何特定键的条目。假设你是一个列表,那么

List.fill(10000)((1,1))

会这样做。

List是本地保存的数据结构。 RDD分布在多个节点上。完全不同但他们有很多相同的方法(作为Spark设计师的慎重选择)。您可以将List转换为RDD,如tthis ...

val sc = ... // Spark Context
val myList  = ....
val myRDD = sc.parallelize(myList)

但是这个基本的问题表明你可以从阅读Spark的入门教程中受益,因为它是通常涵盖的第一件事。