У меня есть следующий код для линейной регрессии с использованием пакета pyspark.ml. Однако я получаю сообщение об ошибке для последней строки, когда модель быть приспособленной:Ошибка преобразования типа из LabeledPoint в pyspark.mllib, для использования модели линейной регрессии в pyspark.ml
IllegalArgumentException: u'requirement не удался: особенности столбцов должны быть типа org.apache.spark.ml.linalg.VectorUDT @ 3bfc3ba7, но был фактически [email protected]
У кого-нибудь есть идея, чего не хватает? Есть ли какая-либо замена в pyspark.ml
для LabeledPoint
в pyspark.mllib
?
from pyspark import SparkContext
from pyspark.ml.regression import LinearRegression
from pyspark.mllib.regression import LabeledPoint
import numpy as np
from pandas import *
data = sc.textFile("/FileStore/tables/w7baik1x1487076820914/randomTableSmall.csv")
def parsePoint(line):
values = [float(x) for x in line.split(',')]
return LabeledPoint(values[1], [values[0]])
points_df = data.map(parsePoint).toDF()
lr = LinearRegression()
model = lr.fit(points_df, {lr.regParam:0.0})
Пожалуйста, вы можете, дайте мне знать искровой версию вы используете и образец файла, который вы пытаетесь импортировать –
pyspark.ml использует dataframes api, тогда как у вас нет имен столбцов, таких как «label» и «features», есть ли какая-то часть кода, который вы еще не опубликовали. –
Это весь код, вызывающий ошибку. и вот несколько первых строк из файла данных, который читается с функцией 'parsePoint': 0.656992798279138,2.5834056958606 0.716673783763451,2.36159163031627 0.259623437084048,1.69482312701634 – Hamed