我想创建一个包含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)]
我提到的内容,我该怎么做?
答案 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的入门教程中受益,因为它是通常涵盖的第一件事。