我是新手,我正在尝试根据csv文件的某些字段创建一个distinct().count().
Csv结构(没有标题):
id,country,type 01,AU,s1 02,s2 03,GR,s2
加载.csv我输入:
lines = sc.textFile("test.txt")
然后对行返回3的不同计数如预期:
lines.distinct().count()
但我不知道如何基于让我们说id和国家来做出明显的计数.
解决方法
在这种情况下,您将选择要考虑的列,然后计数:
sc.textFile("test.txt")\ .map(lambda line: (line.split(',')[0],line.split(',')[1]))\ .distinct()\ .count()
这是为了清楚起见,您可以优化lambda以避免调用line.split两次.