【发布时间】:2015-07-10 01:17:24
【问题描述】:
我正在研究与大数据和 pyspark 相关的在线 MOOC。我遇到了这两个函数的实现,然后将它们传递给 filter() 转换。
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
这个函数的第二个实现很简单,
def ten(value): return value < 10
或等效地在 filter() 转换中用作 lambda 函数时
lambdaRDD = subRDD.filter(lambda x: x < 10)
现在,我的问题是第一个实现返回一个布尔值,如果它小于 10,第二个实现返回一个输入数字。 现在,据我所知,过滤器转换返回那些在执行传递给它的函数时返回 TRUE 的输入。那么该函数的第二个实现如何与过滤器转换一起工作?因为这会返回一个数字? 如果我对过滤函数或函数返回类型的理解有误,请告诉我。
【问题讨论】:
-
所有 3 个函数都返回布尔值
-
如果我将第二个/第三个函数的结果存储在一个变量中,它会是一个数字吗?
-
没有。你可以试试看。
def ten(value): return value < 10为ten(some_number)返回一个布尔值。如果将 lambda 分配给变量ten_filter = lambda x: x < 10并调用ten_filter(some_number),它将返回相同的布尔值