【问题标题】:Pyspark count distinct values of labels of a Labelled point RDDPyspark 计数标签点 RDD 的标签的不同值
【发布时间】:2017-10-26 07:13:39
【问题描述】:

我在 Spark 中有一个 labeled point 的 RDD。我想计算标签的所有不同值。我试试看

from pyspark.mllib.regression import LabeledPoint

train_data =  sc.parallelize([ LabeledPoint(1.0, [1.0, 0.0, 3.0]),LabeledPoint(2.0, [1.0, 0.0, 3.0]),LabeledPoint(1.0, [1.0, 0.0, 3.0]) ])

train_data.reduceByKey(lambda x : x.label).collect()

但我明白了

TypeError: 'LabeledPoint' 对象不可迭代

我使用 Spark 2.1 和 python 2.7。感谢您的帮助。

【问题讨论】:

  • 请提供您的数据样本
  • @desertnaut 我已经用一些数据更新了我的问题

标签: apache-spark pyspark apache-spark-mllib


【解决方案1】:

您只需要将您的LabeledPoint 转换为键值RDD,然后按键计数:

spark.version
# u'2.1.1'

from pyspark.mllib.regression import LabeledPoint

train_data =  sc.parallelize([ LabeledPoint(1.0, [1.0, 0.0, 3.0]),LabeledPoint(2.0, [1.0, 0.0, 3.0]),LabeledPoint(1.0, [1.0, 0.0, 3.0]) ])

dd = train_data.map(lambda x: (x.label, x.features)).countByKey()
dd
# {1.0: 2, 2.0: 1}    

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 2015-07-21
  • 2011-02-15
相关资源
最近更新 更多