Pyspark:IllegalArgumentException:u'requirement failed:init值应该< = bound'

时间:2018-04-09 04:35:41

标签: python apache-spark pyspark

这个错误几乎没有出现在哪里。我正在使用以下代码在pysark中运行简单的线性回归:

from pyspark.ml.regression import LinearRegression

# initialize regression model object
linreg = LinearRegression()

# Fit 2 models, using different regularization parameters
modelA = linreg.fit(X_train_vector)

preds = modelA.transform(X_test_vector)

from pyspark.ml.evaluation import RegressionEvaluator
evaluator = RegressionEvaluator(metricName="r2")
R2 = evaluator.evaluate(preds)
print("ModelA: R2 = " + str(R2))

我的第一个想法是可能存在空值,但在创建我的功能集之前我已经处理过了。

以下是完整错误:

IllegalArgumentException: u'requirement failed: init value should <= bound'
---------------------------------------------------------------------------
IllegalArgumentException                  Traceback (most recent call last)
<command-37272> in <module>()
      5 
      6 # Fit 2 models, using different regularization parameters
----> 7 modelA = linreg.fit(X_train_vector)
      8 
      9 preds = modelA.transform(X_test_vector)

/databricks/spark/python/pyspark/ml/base.pyc in fit(self, dataset, params)
     62                 return self.copy(params)._fit(dataset)
     63             else:
---> 64                 return self._fit(dataset)
     65         else:
     66             raise ValueError("Params must be either a param map or a list/tuple of param maps, "

/databricks/spark/python/pyspark/ml/wrapper.pyc in _fit(self, dataset)
    263 
    264     def _fit(self, dataset):
--> 265         java_model = self._fit_java(dataset)
    266         return self._create_model(java_model)

我不完全确定这意味着什么。

1 个答案:

答案 0 :(得分:0)

看起来您正在使用过时的Spark版本并体验SPARK-21523 - 修复强大的wolfe linesearch init参数失效的错误

如果你使用Spark 2.2,请确保更新到2.2.1版本,其中已经修复了错误。