2016-06-16 4 views
0

나는 pyspark에 새로운 브랜드이지만, 매우 빠르게 digg 할 필요가있다. 나는 두 개의 (거대한) CSV 파일을 pyspark에서 비교하고 지금까지 꽤 괜찮아 보였다. (내 코드는 멋지지 않다.) 결국 일치하는 레코드를 세고 싶다. 일치하지 않는csv 파일과 pySpark를 비교하기

내가 할 수 있었던 것은 :

1. RDD에 csv를로드 중입니다.
act="actual.csv" 
exp="expected.csv" 
raw_exp = sc.textFile(exp)             
raw_act = sc.textFile(act) 
내가 경기를 해달라고 기록 얻을 내가 빼기를 사용하여 rdds을 비교하고 수집 할 수 있습니다
print "Expected: ", raw_exp.count() 
print "Actual:", raw_act.count() 
3. .count()를 사용하여 기록의 양을 셀 수 :
notCompRecords = raw_exp.subtract(raw_act).collect() 

이제는 일치하지 않는 레코드를 계산하고 싶습니다. 나는 내가 사용하는 것이라고 생각 :

notCompRecords.count() 

하지만 난 인수가 누락되는 오류가 발생했습니다 :

나는 또한 내가 obvously 문자열로에있다 notComRecords 목록을 작성 변환 할 필요가 있음을 알게
TypeError: count() takes at least 1 argument (0 given) 

:

notCompString = ''.join(notCompRecords) 

그러나 이것도 작동하지 않습니다.

개체/변수/rdd notCompRecords의 행을 어떻게 계산합니까?

감사합니다. 힌트 또는 힌트를 부탁드립니다. 감사합니다.

+2

'notCompRecords = raw_exp.subtract (raw_act) .collect()'에서'.collect()'를 제거하십시오. 그 후'notCompRecords.count()'를 사용할 수 있습니다. – jho

+0

와우! 그 일은 매우 빠르게 진행되었습니다. 고마워요! –

+0

신속한 보증을 해 주셔서 감사합니다. 때때로 문제가 해결 될 때 사람들이 돌아 오지 않습니다. 이제 우리는 ** jho의 코멘트를 upvote 할 수도 있습니다 ** ** 질문에 ** ** 실제로 추가되었습니다 .- 대답 ;-) – Dilettant

답변

1

notCompRecords = raw_exp.subtract (raw_act) .collect()에서 .collect()를 제거하십시오. 그 후 notCompRecords.count()를 사용할 수 있습니다.

관련 문제