2017-02-25 107 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| 
+-----+-----+ 
相關問題