本文简要介绍
pyspark.sql.functions.udf
的用法。用法:
pyspark.sql.functions.udf(f=None, returnType=StringType)
创建用户定义函数 (UDF)。
版本 1.3.0 中的新函数。
- f:函数
python 函数(如果用作独立函数)
- returnType:
pyspark.sql.types.DataType
或 str 用户定义函数的返回类型。该值可以是
pyspark.sql.types.DataType
对象或 DDL 格式的类型字符串。
参数:
注意:
默认情况下,用户定义的函数被认为是确定性的。由于优化,可以消除重复调用,或者该函数的调用次数甚至可能比查询中出现的次数多。如果您的函数不是确定性的,请在用户定义的函数上调用
asNondeterministic
。例如:>>> from pyspark.sql.types import IntegerType >>> import random >>> random_udf = udf(lambda: int(random.random() * 100), IntegerType()).asNondeterministic()
用户定义的函数不支持条件表达式或布尔表达式中的短路,最终会全部在内部执行。如果函数在特殊行上失败,解决方法是将条件合并到函数中。
用户定义的函数在调用方不采用关键字参数。
例子:
>>> from pyspark.sql.types import IntegerType >>> slen = udf(lambda s: len(s), IntegerType()) >>> @udf ... def to_upper(s): ... if s is not None: ... return s.upper() ... >>> @udf(returnType=IntegerType()) ... def add_one(x): ... if x is not None: ... return x + 1 ... >>> df = spark.createDataFrame([(1, "John Doe", 21)], ("id", "name", "age")) >>> df.select(slen("name").alias("slen(name)"), to_upper("name"), add_one("age")).show() +----------+--------------+------------+ |slen(name)|to_upper(name)|add_one(age)| +----------+--------------+------------+ | 8| JOHN DOE| 22| +----------+--------------+------------+
相关用法
- Python pyspark unhex用法及代码示例
- Python pyspark unix_timestamp用法及代码示例
- Python pyspark create_map用法及代码示例
- Python pyspark date_add用法及代码示例
- Python pyspark DataFrame.to_latex用法及代码示例
- Python pyspark DataStreamReader.schema用法及代码示例
- Python pyspark MultiIndex.size用法及代码示例
- Python pyspark arrays_overlap用法及代码示例
- Python pyspark Series.asof用法及代码示例
- Python pyspark DataFrame.align用法及代码示例
- Python pyspark Index.is_monotonic_decreasing用法及代码示例
- Python pyspark IsotonicRegression用法及代码示例
- Python pyspark DataFrame.plot.bar用法及代码示例
- Python pyspark DataFrame.to_delta用法及代码示例
- Python pyspark element_at用法及代码示例
- Python pyspark explode用法及代码示例
- Python pyspark MultiIndex.hasnans用法及代码示例
- Python pyspark Series.to_frame用法及代码示例
- Python pyspark DataFrame.quantile用法及代码示例
- Python pyspark Column.withField用法及代码示例
- Python pyspark Index.values用法及代码示例
- Python pyspark Index.drop_duplicates用法及代码示例
- Python pyspark aggregate用法及代码示例
- Python pyspark IndexedRowMatrix.computeGramianMatrix用法及代码示例
- Python pyspark DecisionTreeClassifier用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 pyspark.sql.functions.udf。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。