Skip to main content

array_size

Returns the total number of elements in the array. The function returns null for null input.

Syntax​

Python
from pyspark.sql import functions as sf

sf.array_size(col)

Parameters​

Parameter

Type

Description

col

pyspark.sql.Column or str

The name of the column or an expression that represents the array.

Parameter

Type

Description

col

pyspark.sql.Column or str

The name of the column or an expression that represents the array.

Returns​

pyspark.sql.Column: A new column that contains the size of each array.

Examples​

Example 1: Basic usage with integer array

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([([2, 1, 3],), (None,)], ['data'])
df.select(sf.array_size(df.data)).show()
Output
+----------------+
|array_size(data)|
+----------------+
| 3|
| NULL|
+----------------+

Example 2: Usage with string array

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['apple', 'banana', 'cherry'],)], ['data'])
df.select(sf.array_size(df.data)).show()
Output
+----------------+
|array_size(data)|
+----------------+
| 3|
+----------------+

Example 3: Usage with mixed type array

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(['apple', 1, 'cherry'],)], ['data'])
df.select(sf.array_size(df.data)).show()
Output
+----------------+
|array_size(data)|
+----------------+
| 3|
+----------------+

Example 4: Usage with array of arrays

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

Example 5: Usage with empty array

Python
from pyspark.sql import functions as sf
from pyspark.sql.types import ArrayType, IntegerType, StructType, StructField
schema = StructType([
StructField("data", ArrayType(IntegerType()), True)
])
df = spark.createDataFrame([([],)], schema=schema)
df.select(sf.array_size(df.data)).show()
Output
+----------------+
|array_size(data)|
+----------------+
| 0|
+----------------+