2016-08-11 17 views
7

Sử dụng API pySpark ML trong phiên bản 2.0.0 cho ví dụ đơn giản hồi quy tuyến tính, tôi gặp lỗi với thư viện ML mới.Cách chuyển đổi các tính năng ML VectorUDT từ .mllib thành .ml loại

Mã này là:

from pyspark.sql import SQLContext 
sqlContext =SQLContext(sc) 
from pyspark.mllib.linalg import Vectors 

data=sc.parallelize(([1,2],[2,4],[3,6],[4,8])) 
def f2Lp(inStr): 
    return (float(inStr[0]), Vectors.dense(inStr[1])) 
Lp = data.map(f2Lp) 
testDF=sqlContext.createDataFrame(Lp,["label","features"]) 
(trainingData, testData) = testDF.randomSplit([0.8,0.2]) 
from pyspark.ml.regression import LinearRegression 
lr=LinearRegression() 
model=lr.fit(trainingData) 

và lỗi:

IllegalArgumentException: u'requirement failed: Column features must be of type [email protected] but was actually [email protected]' 

làm thế nào tôi nên chuyển đổi tính năng vector từ .mllib để .ml loại?

Trả lời

8

Từ sử dụng Spark2.0

from pyspark.ml.linalg import Vectors, VectorUDT 

thay vì

from pyspark.mllib.linalg import Vectors, VectorUDT 
Các vấn đề liên quan