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

dim*_*zak 7 python apache-spark pyspark

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

Csv结构(没有标题):

id,country,type
01,AU,s1
02,AU,s2
03,GR,s2
03,GR,s2
Run Code Online (Sandbox Code Playgroud)

加载.csv我输入:

lines = sc.textFile("test.txt")
Run Code Online (Sandbox Code Playgroud)

然后lines根据预期对返回的3 进行明确计数:

lines.distinct().count()
Run Code Online (Sandbox Code Playgroud)

但是我不知道如何根据我们说id和做出明确的计数country.

ely*_*ase 8

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

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

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