透過分隔符將輸入陣列欄位的元素串接,回傳字串欄位。 陣列中的空值可以透過 null_replacement 參數替換為指定的字串。 若未設定 null_replacement,則忽略空值。
語法
from pyspark.sql import functions as sf
sf.array_join(col, delimiter, null_replacement=None)
參數
| 參數 | 類型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
輸入欄位包含待連接陣列。 |
delimiter |
str | 在連接陣列元素時,該字串將用作分隔符。 |
null_replacement |
力量,選用 | 用來替換陣列中空值的字串。 若未設定,空值將被忽略。 |
退貨
pyspark.sql.Column:一個新的字串欄位,每個值是從輸入欄位連接對應陣列的結果。
範例
範例一:array_join函數的基本使用。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],), (["a", "b"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
| a,b,c|
| a,b|
+-------------------+
範例 2:array_join函式與null_replacement參數的使用。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",", "NULL")).show()
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
| a,NULL,c|
+-------------------------+
範例 3:使用array_join函數而不null_replacement參數。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
| a,c|
+-------------------+
範例 4:array_join函式搭配空陣列。
from pyspark.sql import functions as sf
from pyspark.sql.types import StructType, StructField, ArrayType, StringType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([(None,)], schema)
df.select(sf.array_join(df.data, ",")).show()
+-------------------+
|array_join(data, ,)|
+-------------------+
| NULL|
+-------------------+
範例 5:使用array_join函式,搭配僅包含空值的陣列。
from pyspark.sql import functions as sf
from pyspark.sql.types import StructType, StructField, ArrayType, StringType
schema = StructType([StructField("data", ArrayType(StringType()), True)])
df = spark.createDataFrame([([None, None],)], schema)
df.select(sf.array_join(df.data, ",", "NULL")).show()
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
| NULL,NULL|
+-------------------------+