함수를 사용하여 지정된 두 배열을 요소 단위로 단일 배열에 병합합니다. 하나의 배열이 더 짧은 경우 함수를 적용하기 전에 끝에 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 |
이진 함수입니다. |
Returns
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]|
+-----------------+