2017-02-25 169 views
1

我有一列填充了一堆状态的首字母作为字符串。我的目标是如何在这样的列表中的每个国家的数量。如何计算pyspark数据框中每个不同值的计数?

例如:(("TX":3),("NJ":2))应该是在出现两次出现"TX""NJ"时的输出。

我对pyspark相当陌生,所以我很难过这个问题。任何帮助将非常感激。

+0

我不知道关于pyspark的事情,但如果你的字符串的集合是可迭代的,你可以将它传递给一个['collections.Counter'](https://docs.python.org/2/library/collections.html#collections.Counter),它的存在是为了明确计数值。 – Kevin

回答

6

我认为你正在寻找使用groupBycount的DataFrame成语。

例如,给出以下数据框中每行,一个状态:

df = sqlContext.createDataFrame([('TX',), ('NJ',), ('TX',), ('CA',), ('NJ',)], ('state',)) 
df.show() 
+-----+ 
|state| 
+-----+ 
| TX| 
| NJ| 
| TX| 
| CA| 
| NJ| 
+-----+ 

以下收益率:

df.groupBy('state').count().show() 
+-----+-----+ 
|state|count| 
+-----+-----+ 
| TX| 2| 
| NJ| 2| 
| CA| 1| 
+-----+-----+ 
相关问题