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

配列結合

区切り文字を使用して入力配列列の要素を連結し、文字列列を返します。配列内の null 値は、null_replacement 引数を通じて指定された文字列に置き換えることができます。null_replacement が設定されていない場合、 null 値は無視されます。

構文

Python
from pyspark.sql import functions as sf

sf.array_join(col, delimiter, null_replacement=None)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または文字列

結合する配列を含む入力列。

delimiter

str

配列要素を結合するときに区切り文字として使用される文字列。

null_replacement

str、オプション

配列内の null 値を置き換える文字列。設定されていない場合、null 値は無視されます。

戻り値

pyspark.sql.Column: 文字列型の新しい列。各値は、入力列の対応する配列を結合した結果です。

例 1 : array_join 関数の基本的な使用法。

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", "b", "c"],), (["a", "b"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
Output
+-------------------+
|array_join(data, ,)|
+-------------------+
| a,b,c|
| a,b|
+-------------------+

例 2 : null_replacement 引数を指定した array_join 関数の使用。

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",", "NULL")).show()
Output
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
| a,NULL,c|
+-------------------------+

例 3 : null_replacement 引数なしの array_join 関数の使用。

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(["a", None, "c"],)], ['data'])
df.select(sf.array_join(df.data, ",")).show()
Output
+-------------------+
|array_join(data, ,)|
+-------------------+
| a,c|
+-------------------+

例 4 : null の配列での array_join 関数の使用。

Python
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()
Output
+-------------------+
|array_join(data, ,)|
+-------------------+
| NULL|
+-------------------+

例 5 : null 値のみを含む配列での array_join 関数の使用。

Python
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()
Output
+-------------------------+
|array_join(data, ,, NULL)|
+-------------------------+
| NULL,NULL|
+-------------------------+