【发布时间】:2015-06-09 12:26:22
【问题描述】:
我正在尝试学习 apache-spark。这是我正在尝试运行的代码。我正在使用pyspark api。
data = xrange(1, 10000)
xrangeRDD = sc.parallelize(data, 8)
def ten(value):
"""Return whether value is below ten.
Args:
value (int): A number.
Returns:
bool: Whether `value` is less than ten.
"""
if (value < 10):
return True
else:
return False
filtered = xrangeRDD.filter(ten)
print filtered.collect()
print filtered.take(8)
print filtered.collect() 将此作为输出[1, 2, 3, 4, 5, 6, 7, 8, 9]。
据我了解,filtered.take(n) 将从 RDD 中获取 n 个元素并打印出来。
我正在尝试两种情况:-
1)给出的n值小于或等于RDD中的元素个数
2)n 的值大于 RDD 中的元素个数
我有pyspark application UI 可以查看每种情况下运行的作业数量。在第一种情况下,只有one job 正在运行,但在第二种情况下,five jobs 正在运行。
我无法理解为什么会这样。提前致谢。
【问题讨论】:
标签: apache-spark bigdata pyspark