2017-02-25 1 views
1

나는 문자열로 여러 개의주의 머리 글자로 채워진 컬럼을 가지고있다. 내 목표는 그러한 목록에있는 각 주를 어떻게 계산하는지에 있습니다.pyspark 데이터 프레임에서 각 고유 값의 수를 계산하는 방법은 무엇입니까?

예 : "TX""NJ"의 두 번이있는 경우 이 출력되어야합니다.

나는이 문제로 어려움에 빠지기 때문에 pyspark에 상당히 익숙하다. 어떤 도움이라도 대단히 감사 할 것입니다.

+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| 
+-----+ 

다음 수율 : 행 당 하나 개의 상태는 다음 dataframe 주어진 예를 들어

, 내가 pyspark에 대해 아무것도 모르는

df.groupBy('state').count().show() 
+-----+-----+ 
|state|count| 
+-----+-----+ 
| TX| 2| 
| NJ| 2| 
| CA| 1| 
+-----+-----+ 
관련 문제