다음을 통해 공유


zip_with

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