本文簡要介紹
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。