【问题标题】:Count in pyspark在 pyspark 中计数
【发布时间】:2017-07-25 19:12:09
【问题描述】:

我有一个火花数据框 df,其中有一列“id”(字符串)和另一列“值”(字符串数组)。我想创建另一个名为 count 的列,其中包含每个 id 的值的计数。

df 看起来像 -

id        values
1fdf67    [dhjy1,jh87w3,89yt5re]
df45l1    [hj098,hg45l0,sass65r4,dh6t21]

结果应该看起来像 -

id        values                          count
1fdf67    [dhjy1,jh87w3,89yt5re]          3
df45l1    [hj098,hg45l0,sass65r4,dh6t21]  4

我正在尝试执行以下操作-

df= df.select(id,values).toDF(id,values,values.count())

这似乎不符合我的要求。

【问题讨论】:

  • values 不是变量,是吗?那么,values.count() 会给你什么?
  • 我认为您正在寻找withColumn() 函数。

标签: python apache-spark dataframe pyspark


【解决方案1】:

请使用size函数:

from pyspark.sql.functions import size

df = spark.createDataFrame([
    ("1fdf67", ["dhjy1", "jh87w3", "89yt5re"]),
    ("df45l1", ["hj098", "hg45l0", "sass65r4", "dh6t21"])],
    ("id", "values"))

df.select("*", size("values").alias("count")).show(2, False)

+------+---------------------------------+-----+
|id    |values                           |count|
+------+---------------------------------+-----+
|1fdf67|[dhjy1, jh87w3, 89yt5re]         |3    |
|df45l1|[hj098, hg45l0, sass65r4, dh6t21]|4    |
+------+---------------------------------+-----+

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-15
    相关资源
    最近更新 更多