通过在PySpark中的现有列中应用函数来创建新列?

通过在PySpark中的现有列中应用函数来创建新列?,pyspark,Pyspark,假设我有一个数据帧 product_id customers 1 [1,2,4] 2 [1,2] 我想创建一个新的列,比如nb\u customer,方法是在customers列上应用函数len 我试过了 df=df.select('*',(map(len,df.customers)).alias('nb_customer')) 但它不起作用 正确的方法是什么 谢谢希望这有帮助 import pyspark.sql.functions as f df = sc.parallelize([

假设我有一个数据帧

product_id customers
1 [1,2,4]
2 [1,2]
我想创建一个新的列,比如
nb\u customer
,方法是在
customers
列上应用函数
len

我试过了

df=df.select('*',(map(len,df.customers)).alias('nb_customer'))

但它不起作用

正确的方法是什么

谢谢

希望这有帮助

import pyspark.sql.functions as f

df = sc.parallelize([
    [1,[1,2,4]],
    [2,[1,2]]
]).toDF(('product_id', 'customers'))

df.withColumn('nb_customer',f.size(df.customers)).show()