Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Объедините два заданных массива поэлементно в один массив с помощью функции. Если один массив короче, значения NULL добавляются в конце, чтобы соответствовать длине более длинного массива, прежде чем применять функцию. Поддерживает Spark Connect.
Для соответствующей функции Databricks SQL смотрите функцию zip_with.
Синтаксис
from pyspark.databricks.sql import functions as dbf
dbf.zip_with(left=<left>, right=<right>, f=<f>)
Параметры
| Параметр | Тип | Description |
|---|---|---|
left |
pyspark.sql.Column или str |
Имя первого столбца или выражения. |
right |
pyspark.sql.Column или str |
Имя второго столбца или выражения. |
f |
function |
Двоичная функция. |
Возвраты
pyspark.sql.Column: массив вычисляемых значений, производных путем применения данной функции к каждой паре аргументов.
Примеры
Пример 1. Объединение двух массивов с простой функцией
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, [1, 3, 5, 8], [0, 2, 4, 6])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: x ** y).alias("powers")).show(truncate=False)
+---------------------------+
|powers |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+
Пример 2. Объединение массивов разной длины
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(1, ["foo", "bar"], [1, 2, 3])], ("id", "xs", "ys"))
df.select(dbf.zip_with("xs", "ys", lambda x, y: dbf.concat_ws("_", x, y)).alias("xs_ys")).show()
+-----------------+
| xs_ys|
+-----------------+
|[foo_1, bar_2, 3]|
+-----------------+