将csv文件与pySpark进行比较

时间:2016-06-16 12:54:41

标签: python csv apache-spark pyspark export-to-csv

我是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中的行?

谢谢! 任何提示或线索都表示赞赏。 最诚挚的问候,

1 个答案:

答案 0 :(得分:3)

从notCompRecords = raw_exp.subtract(raw_act).collect()中删除.collect()。之后,您可以使用notCompRecords.count()。