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


array_repeat

Создает массив, содержащий столбец, повторяющийся несколько раз.

Синтаксис

from pyspark.sql import functions as sf

sf.array_repeat(col, count)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Имя столбца или выражения, представляющего повторяемый элемент.
count pyspark.sql.Column, str или int Имя столбца, выражения или целого числа, представляющего количество раз повторения элемента.

Возвраты

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

Примеры

Пример 1. Использование со строкой

from pyspark.sql import functions as sf
df = spark.createDataFrame([('ab',)], ['data'])
df.select(sf.array_repeat(df.data, 3)).show()
+---------------------+
|array_repeat(data, 3)|
+---------------------+
|         [ab, ab, ab]|
+---------------------+

Пример 2. Использование с целым числом

from pyspark.sql import functions as sf
df = spark.createDataFrame([(3,)], ['data'])
df.select(sf.array_repeat(df.data, 2)).show()
+---------------------+
|array_repeat(data, 2)|
+---------------------+
|               [3, 3]|
+---------------------+

Пример 3. Использование с массивом

from pyspark.sql import functions as sf
df = spark.createDataFrame([(['apple', 'banana'],)], ['data'])
df.select(sf.array_repeat(df.data, 2)).show(truncate=False)
+----------------------------------+
|array_repeat(data, 2)             |
+----------------------------------+
|[[apple, banana], [apple, banana]]|
+----------------------------------+

Пример 4. Использование с значением NULL

from pyspark.sql import functions as sf
from pyspark.sql.types import IntegerType, StructType, StructField
schema = StructType([
  StructField("data", IntegerType(), True)
])
df = spark.createDataFrame([(None, )], schema=schema)
df.select(sf.array_repeat(df.data, 3)).show()
+---------------------+
|array_repeat(data, 3)|
+---------------------+
|   [NULL, NULL, NULL]|
+---------------------+