如何计算pyspark数据框中每个不同值的计数?

mad*_*aks 17 python dataframe pyspark

我有一个列充满了一堆状态的首字母作为字符串.我的目标是如何计算每个州的名单.

例如:(("TX":3),("NJ":2))当出现两次"TX"和时,应该是输出"NJ".

我是pyspark的新手,所以我很难解决这个问题.任何帮助将非常感激.

edd*_*ies 50

我想你正在寻找使用groupBycount的DataFrame习语.

例如,给定以下数据帧,每行一个状态:

df = sqlContext.createDataFrame([('TX',), ('NJ',), ('TX',), ('CA',), ('NJ',)], ('state',))
df.show()
+-----+
|state|
+-----+
|   TX|
|   NJ|
|   TX|
|   CA|
|   NJ|
+-----+
Run Code Online (Sandbox Code Playgroud)

以下产量:

df.groupBy('state').count().show()
+-----+-----+
|state|count|
+-----+-----+
|   TX|    2|
|   NJ|    2|
|   CA|    1|
+-----+-----+
Run Code Online (Sandbox Code Playgroud)

  • 如何获得排序列表作为输出? (2认同)
  • 添加 `.sort('state')` 像 `df.groupBy('state').count().sort('state').show()` (2认同)