Scala过滤函数需要大小写?

时间:2018-01-10 07:08:16

标签: scala apache-spark

我是scala / spark的新手,我很好奇是否真的需要case

pairs.filter{case (key, value) => value.length < 20}

2 个答案:

答案 0 :(得分:4)

不是必需的。该语法适用于部分函数,​​以下内容也适用:

INSERT INTO table (column1_name,... ) VALUES (column1_value,...) ;

或等效地:

pairs.filter(tuple => tuple._2.length < 20)

答案 1 :(得分:1)

你正在对元组进行解构。因此,您必须使用模式匹配语法,该语法使用case关键字。

pairs.filter{case (key, value) => value.length < 20}

这会调用带有一个参数的函数的filter,一个2元组。

pairs.filter{(key, value) => value.length < 20}

这使用两个参数的函数调用filter。这不是正确的函数类型,会产生类型错误。