メインコンテンツまでスキップ

zip_with

関数を使用して、指定された 2 つの配列を要素ごとに 1 つの配列に結合します。一方の配列が短い場合、関数を適用する前に、長い方の配列の長さに合わせて末尾に null が追加されます。Spark Connect をサポートします。

対応する Databricks SQL 関数については、 zip_with関数を参照してください。

構文

Python
from pyspark.databricks.sql import functions as dbf

dbf.zip_with(left=<left>, right=<right>, f=<f>)

パラメーター

パラメーター

Type

説明

left

pyspark.sql.Column または str

最初の列または式の名前。

right

pyspark.sql.Column または str

2 番目の列または式の名前。

f

function

バイナリ関数。

戻り値

pyspark.sql.Column: 指定された関数を各引数のペアに適用することによって導出された計算値の配列。

例1 : 単純な関数で2つの配列を結合する

Python
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)
Output
+---------------------------+
|powers |
+---------------------------+
|[1.0, 9.0, 625.0, 262144.0]|
+---------------------------+

例2 : 異なる長さの配列を結合する

Python
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()
Output
+-----------------+
| xs_ys|
+-----------------+
|[foo_1, bar_2, 3]|
+-----------------+