我是scala / spark的新手,我很好奇是否真的需要case
?
pairs.filter{case (key, value) => value.length < 20}
答案 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。这不是正确的函数类型,会产生类型错误。