繁体   English   中英

pySpark distinct()。count()在csv文件上

[英]PySpark distinct().count() on a csv file

我是新手,我正在尝试根据csv文件的某些字段创建一个distinct()。count()。

Csv结构(没有标题):

id,country,type
01,AU,s1
02,AU,s2
03,GR,s2
03,GR,s2

加载.csv我输入:

lines = sc.textFile("test.txt")

然后对lines返回3的不同计数如预期:

lines.distinct().count()

但我不知道如何基于让我们说idcountry来做出明显的计数。

在这种情况下,您将选择要考虑的列,然后计数:

sc.textFile("test.txt")\
  .map(lambda line: (line.split(',')[0], line.split(',')[1]))\
  .distinct()\
  .count()

这是为了清楚起见,您可以优化lambda以避免调用line.split两次。

分割线可以如下优化:

sc.textFile("test.txt").map(lambda line: line.split(",")[:-1]).distinct().count()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM