PYSPARK:在ML算法中使用DataFrame



我明白,要使用ml.cluster.clustering kmeans算法(实际上是任何ML算法?),我需要使用数据框架,我需要将我的dataframe具有一定的形状:(id,vector [id,vector []), 或类似的东西。如何应用正确的转换以将常规表(存储在DF中)转换为所需的结构?这是我的DF:

from pyspark import SparkConf
from pyspark import SparkContext

conf = SparkConf()
sc = SparkContext(conf=conf)
from pyspark.sql import SparkSession
spark = SparkSession 
.builder 
.appName("Python Spark SQL basic example") 
.config("spark.some.config.option", "some-value") 
.getOrCreate()
#-----------------------------
#creating DF:
l = [('user1', 2,1,4),('user2',3,5,6)]
temp_df = spark.createDataFrame(l)
temp_df.show()
+-----+---+---+---+
|   _1| _2| _3| _4|
+-----+---+---+---+
|user1|  2|  1|  4|
|user2|  3|  5|  6|
+-----+---+---+---+

我想使用:

from pyspark.ml.clustering import KMeans
kmean = KMeans().setK(2).setSeed(1)
model = kmean.fit(temp_df)

我得到:iLlegalargumentException:u'field"功能"不存在。'

谢谢,

KMeans需要vector类型的输入列,该列应该(如果未另有配置)命名为features。您应该使用VectorAssembler结合功能。

请咨询:

  • kmeans docs
  • vectorAssembler文档

相关内容

  • 没有找到相关文章

最新更新