Поделиться через


массив

Создает новый столбец типа массива из исходных столбцов или их имен.

Синтаксис

from pyspark.sql import functions as sf

sf.array(*cols)

Параметры

Параметр Тип Description
cols pyspark.sql.Column или str Имена столбцов или объекты столбцов с одинаковым типом данных.

Возвраты

pyspark.sql.Column: новый столбец типа массива, где каждое значение является массивом, содержащим соответствующие значения из входных столбцов.

Примеры

Пример 1. Базовое использование функции массива с именами столбцов.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", "doctor"), ("Bob", "engineer")],
    ("name", "occupation"))
df.select(sf.array('name', 'occupation')).show()
+-----------------------+
|array(name, occupation)|
+-----------------------+
|        [Alice, doctor]|
|        [Bob, engineer]|
+-----------------------+

Пример 2. Использование функции массива с объектами Column.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", "doctor"), ("Bob", "engineer")],
    ("name", "occupation"))
df.select(sf.array(df.name, df.occupation)).show()
+-----------------------+
|array(name, occupation)|
+-----------------------+
|        [Alice, doctor]|
|        [Bob, engineer]|
+-----------------------+

Пример 3. Один аргумент в качестве списка имен столбцов.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", "doctor"), ("Bob", "engineer")],
    ("name", "occupation"))
df.select(sf.array(['name', 'occupation'])).show()
+-----------------------+
|array(name, occupation)|
+-----------------------+
|        [Alice, doctor]|
|        [Bob, engineer]|
+-----------------------+

Пример 4. Использование функции массива со столбцами различных типов.

from pyspark.sql import functions as sf
df = spark.createDataFrame(
    [("Alice", 2, 22.2), ("Bob", 5, 36.1)],
    ("name", "age", "weight"))
df.select(sf.array(['age', 'weight'])).show()
+------------------+
|array(age, weight)|
+------------------+
|       [2.0, 22.2]|
|       [5.0, 36.1]|
+------------------+

Пример 5. Функция массива со столбцом, содержащим значения NULL.

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", None), ("Bob", "engineer")],
    ("name", "occupation"))
df.select(sf.array('name', 'occupation')).show()
+-----------------------+
|array(name, occupation)|
+-----------------------+
|          [Alice, NULL]|
|        [Bob, engineer]|
+-----------------------+