😸

PySparkのsize関数について

2022/04/24に公開

モチベーション

Pysparkのsize関数について、なんのサイズを出す関数かすぐに忘れるため、実際のサンプルを記載しすぐに思い出せるようにする。
https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.functions.size.html

結果

from pyspark.sql.functions import size

data = [(['Yamada','Taro'], 13),(['Ito','kenta'], 25)]
df = spark.createDataFrame(data,['name', 'age'])
df = df.withColumn('sizecolumn',size('name'))
df.show()

+--------------+---+----------+
|          name|age|sizecolumn|
+--------------+---+----------+
|[Yamada, Taro]| 13|         2|
|  [Ito, kenta]| 25|         2|
+--------------+---+----------+

なお、size関数の引数にarrayかmapを指定しなかった場合には、次のExceptionとなる。
AnalysisException: cannot resolve 'size(name)' due to data type mismatch: argument 1 requires (array or map) type

Discussion