我是pyspark的新手,但我需要非常快速地深入了解它。 我想比较pyspark中的两个(巨大的)csv文件,并且管理到目前为止还不错(我很确定,我的代码不太花哨) 最后,我想计算匹配的记录和不匹配的记录。
我能够实现的目标是:
1.将csv加载到RDD' s。act="actual.csv"
exp="expected.csv"
raw_exp = sc.textFile(exp)
raw_act = sc.textFile(act)
2.我可以使用.count()计算记录数量
print "Expected: ", raw_exp.count()
print "Actual:", raw_act.count()
3.我可以使用减法和收集来比较rdds以获得不匹配的记录:
notCompRecords = raw_exp.subtract(raw_act).collect()
现在我要计算那些不匹配的记录。 我以为我会用:
notCompRecords.count()
但是我得到了缺少参数的错误:
TypeError: count() takes at least 1 argument (0 given)
我还了解到我必须通过以下方式将notComRecords的List转换为字符串:
notCompString = ''.join(notCompRecords)
但这也行不通。
如何计算Object / Variable / rdd notCompRecords中的行?
谢谢! 任何提示或线索都表示赞赏。 最诚挚的问候,
答案 0 :(得分:3)
从notCompRecords = raw_exp.subtract(raw_act).collect()中删除.collect()。之后,您可以使用notCompRecords.count()。