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

时间:2017-08-24 12:20:21

标签: pyspark

说我有数据框

product_id customers
1 [1,2,4]
2 [1,2]

我想通过在nb_customer列上应用函数len来创建新列,说customers

我试过

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

但它不起作用。

这样做的正确方法是什么?

由于

1 个答案:

答案 0 :(得分:2)

希望这有帮助!

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()