我试图了解当我们在spark中运行device_t role = DEVICE1;
volatile int state;
char array[4];
void setup() {
SimbleeGZLL.begin(role);
Serial.begin(9600);
timer_one(1);
}
void loop() {
array[0] = analogRead(2);
array[1] = analogRead(3);
array[2] = analogRead(4);
array[3] = analogRead(5);
SimbleeGZLL.sendToHost(EMG,4);
}
()函数时会发生什么。根据Pyspark文档,它说,
collectAsMap(个体) 将此RDD中的键值对作为字典返回给master。
并且核心火花它说,
def collectAsMap():Map [K,V]返回此RDD中的键值对 作为地图给主人。
当我尝试在pyspark中为List运行示例代码时,我得到以下结果:
我有点困惑为什么它没有返回列表中的所有元素。有人可以帮助我理解这种情况下我正在获得选择性结果的原因。
感谢。
答案 0 :(得分:2)
Scala和Python API之间collectAsMap
的语义是相同的,所以我将查看第一个WLOG。 PairRDDFunctions.collectAsMap
的文档明确指出:
警告:这不会返回多重映射(因此,如果您对同一个键有多个值,则返回的映射中每个键只保留一个值)
特别是,当前实现按顺序将键值对插入到结果映射中,因此在两个示例中只有最后两对存在。
如果您使用collect
,它将返回Array[(Int,Int)]
而不会丢失任何配对。
答案 1 :(得分:0)
collectAsMap
会将配对RDD
的结果作为地图集合返回。由于它返回了Map集合,因此只能获得具有唯一键的对,并且将删除具有重复键的对。