PySpark中expr内->符号的称谓、搜索方法及OR条件实现咨询
PySpark expr中
->符号的名称、搜索方法及OR条件实现 一、->的正式名称
这个符号是Spark SQL匿名函数(Lambda表达式)的箭头操作符,属于Spark SQL语法范畴,和Python的lambda关键字不是同一概念。它专门用于Spark SQL的高阶函数(比如filter、transform)中,用来声明匿名函数的参数与函数体的映射关系。
二、谷歌搜索方法
可以用以下关键词组合精准搜索:
- 英文关键词:
Spark SQL -> operator syntax、Spark SQL filter arrow symbol usage、Spark SQL anonymous function arrow - 中文关键词:「Spark SQL -> 符号 语法」「Spark SQL 高阶函数 箭头操作符」
三、OR条件实现示例
在filter的匿名函数中,直接使用Spark SQL的OR关键字来组合多个布尔条件即可。比如要筛选数组calls中满足「call字段前23位为指定前缀」或「通话时长超过300秒」的元素,代码如下:
spark.sql.functions.expr('filter(calls, x -> substring(x.call, 0, 23) = "指定前缀" OR x.duration > 300)')
这里的x代表calls数组中的单个元素,只要满足OR连接的任意一个条件,该元素就会被保留在过滤后的结果数组中。
内容的提问来源于stack exchange,提问作者Blue Clouds
相关产品推荐
相关产品推荐

