我是 spark 的新手,我正在尝试根据 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()
但我不知道如何根据 id
和 country
进行不同的计数。
最佳答案
在这种情况下,您可以选择要考虑的列,然后计数:
sc.textFile("test.txt")\
.map(lambda line: (line.split(',')[0], line.split(',')[1]))\
.distinct()\
.count()
这是为了清楚起见,您可以优化 lambda 以避免调用 line.split
两次。
关于python - PySpark distinct().count() 在 csv 文件上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27987298/