Apache spark Pyspark计数标记点RDD标签的不同值

Apache spark Pyspark计数标记点RDD标签的不同值,apache-spark,pyspark,apache-spark-mllib,Apache Spark,Pyspark,Apache Spark Mllib,我在Spark有一个RDD。我想计算标签的所有不同值。我试试看 从pyspark.mllib.returnal导入标签点 序列数据=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])) 列_数据.reduceByKey(lambda x:x.label).collect() 但我明白了 TypeError:“LabeledPoin

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

从pyspark.mllib.returnal导入标签点
序列数据=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]))
列_数据.reduceByKey(lambda x:x.label).collect()
但我明白了

TypeError:“LabeledPoint”对象不可编辑


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

您只需将
标签点
转换为键值RDD,然后按键计数:

spark.version
#u'2.1.1'
从pyspark.mllib.regression导入标签点
序列数据=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=列车数据图(λx:(x.label,x.features)).countByKey()
dd
# {1.0: 2, 2.0: 1}    

您只需将
标签点
转换为键值RDD,然后按键计数:

spark.version
#u'2.1.1'
从pyspark.mllib.regression导入标签点
序列数据=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=列车数据图(λx:(x.label,x.features)).countByKey()
dd
# {1.0: 2, 2.0: 1}    

请提供您的data@desertnaut我用一些数据更新了我的问题,请提供你的data@desertnaut我用一些数据更新了我的问题,这解决了OP的pb。但最好有一个解释:)在这里,你可以添加这些链接作为额外的阅读:)这解决了OP的pb。但最好有一个解释:)在这里,你可以添加这些链接作为额外阅读:)