python - PySpark distinct().count() 在 csv 文件上

标签 python apache-spark pyspark

我是 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()

但我不知道如何根据 idcountry 进行不同的计数。

最佳答案

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

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/

相关文章:

pyspark - 计数数组包含 PySpark 中每个类别的字符串的次数

python - 将 PySpark DenseVector 转换为数组

python - 与 re.findall 有问题

python - Django密码更改:Reverse for '<function password_change_done at 0xa3b0f0c>' with arguments '()' and keyword arguments '{}' not found

python - 需要帮助编写一个扭曲的代理

amazon-web-services - 加载 csv 文件 s3 pyspark 的随机样本

python - SWIG src 和共享 lib 文件的位置

python - PySpark:将不同的窗口大小应用于 pyspark 中的数据帧

apache-spark - 仅读取 spark 数据集的前 n 列

python - Spark 中 Python 列的总和