2017-02-25 4 views
1

私は、一連の州のイニシャルを文字列で埋めました。私の目標は、どのようにそのようなリスト内の各州のカウントです。pysparkデータフレーム内のそれぞれの異なる値の数を計算するにはどうすればよいですか?

たとえば、と"NJ"の2つの出現がある場合は、(("TX":3),("NJ":2))が出力されます。

私はかなり新しいですが、私はこの問題に悩まされています。どんな助けでも大歓迎です。

+0

が、もし文字列のコレクションiterableなので、あなたは['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| 
+-----+ 

以下の収率:行ごとに、一つの状態以下のデータフレーム与え例えば

、私はpysparkについての事を知らない

df.groupBy('state').count().show() 
+-----+-----+ 
|state|count| 
+-----+-----+ 
| TX| 2| 
| NJ| 2| 
| CA| 1| 
+-----+-----+ 
関連する問題