pyspark piplineRDD适合数据帧列
首先,我是python和spark世界的新手。 我有大学的作业,但我只能呆在一个地方。 我从我的数据进行聚类,现在我在PipelinedRDD中有了我的集群 此后:pyspark piplineRDD适合数据帧列,pyspark,spark-dataframe,Pyspark,Spark Dataframe,首先,我是python和spark世界的新手。 我有大学的作业,但我只能呆在一个地方。 我从我的数据进行聚类,现在我在PipelinedRDD中有了我的集群 此后: cluster=featureizedscaleddd.map(lambda r:kmeansmodelmlib.predict(r)) 集群=[2,1,2,0,0,0,1,2] 现在我有了cluster和我的dataframedataDf我需要将我的cluster像一个新的列一样调整到dataDf i Have:
cluster=featureizedscaleddd.map(lambda r:kmeansmodelmlib.predict(r))
集群=[2,1,2,0,0,0,1,2]
现在我有了cluster
和我的dataframedataDf
我需要将我的cluster
像一个新的列一样调整到dataDf
i Have: i Need:
+---+---+---+ +---+---+---+-------+
| x | y | z | | x | y | z |cluster|
+---+---+---+ +---+---+---+-------+
| 0 | 1 | 1 | | 0 | 1 | 1 | 2 |
| 0 | 0 | 1 | | 0 | 0 | 1 | 1 |
| 0 | 8 | 0 | | 0 | 8 | 0 | 2 |
| 0 | 8 | 0 | | 0 | 8 | 0 | 0 |
| 0 | 1 | 0 | | 0 | 1 | 0 | 0 |
+---+---+---+ +---+---+---+-------+
您可以使用
zipWithIndex
,join
,添加索引,然后转换回df
swp = lambda x: (x[1], x[0])
cluster.zipWithIndex().map(swp).join(dataDf.rdd.zipWithIndex().map(swp)) \
.values().toDF(["cluster", "point"])
在某些情况下,应该可以使用zip
:
cluster.zip(dataDf.rdd).toDF(["cluster", "point"])
您可以使用
。选择(“集群”、“点”。”
以展平输出。我想在您第一次看到它之后,我可能已经对它进行了编辑。