我正在试图找出rdd.filter返回空rdd的原因。下面是代码片段:其思想是将数据集(rdd)拆分为两个独立的数据集,称为lower和higher。这些命令在一个循环中执行,这个循环会逐渐减少数据集。第一轮工作如预期,然而,一段时间后rdd.filter返回空rdd,尽管它应该是空的。我添加了一些代码来隔离问题。输出如下所示。正如您首先看到的,rdd包含7个对象,这7个对象中的3个应该包含在下面的部分中。但是,函数返回空rdd。知道为什么会出问题吗?
items = rdd.collect()
print(items)
print("Remove items where key is leq:", x_key, "index !=", x_index)
lower = rdd.filter(lambda x: x[0] <=x_key and x[1] != x_index)
items = lower.collect()
print('Lower:', items)
输出:
[(7, 1), (5, 2), (8, 3), (4, 4), (9, 5), (10, 10), (4, 11)]
Remove items where key is leq: 7 index != 1
Lower: []
2条答案
按热度按时间ds97pgxw1#
我觉得你上面的代码很好。我运行了上面相同的代码,得到了非空结果(下图)。如果你仍然认为这是你有错误的部分,那么请你提供更多的信息,看看是怎么回事。
jaxagkaj2#
有一个小错误:
应该