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 | 説明 |
|---|---|---|
|
| 最初の列または式の名前。 |
|
| 2 番目の列または式の名前。 |
|
| バイナリ関数。 |
戻り値
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]|
+-----------------+