Description
There's a bug in accepting numeric types for linear regression. We cast the label to DoubleType in one spot where we use normal solver, but not for the l-bfgs solver. The following can reproduce the problem:
import org.apache.spark.ml.feature.LabeledPoint import org.apache.spark.ml.linalg.{Vector, DenseVector, Vectors} import org.apache.spark.ml.regression.LinearRegression import org.apache.spark.sql.types._ val df = Seq(LabeledPoint(1.0, Vectors.dense(1.0))).toDF().withColumn("weight", lit(1.0).cast(LongType)) val lr = new LinearRegression().setSolver("l-bfgs").setWeightCol("weight") lr.fit(df)