在向输入数组中的每个元素应用转换后返回元素数组。 支持 Spark Connect。
有关相应的 Databricks SQL 函数,请参阅 transform 函数。
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.transform(col=<col>, f=<f>)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
列或表达式的名称。 |
f |
function |
应用于输入数组的每个元素的函数。 可以采用以下形式之一:一元 (x: Column) -> Column 或二进制 (x: Column, i: Column) -> Column ,其中第二个参数是元素的从 0 开始的索引。 |
退货
pyspark.sql.Column:已转换元素的新数组。
例子
示例 1:使用简单函数转换数组元素
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
df.select(dbf.transform("values", lambda x: x * 2).alias("doubled")).show()
+------------+
| doubled|
+------------+
|[2, 4, 6, 8]|
+------------+
示例 2:使用索引转换数组元素
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 2, 3, 4])], ("key", "values"))
def alternate(x, i):
return dbf.when(i % 2 == 0, x).otherwise(-x)
df.select(dbf.transform("values", alternate).alias("alternated")).show()
+--------------+
| alternated|
+--------------+
|[1, -2, 3, -4]|
+--------------+