无法在数据框[重复]上应用StringIndexer方法

问题描述 投票:0回答:1

此问题已经在这里有了答案:

我已经从CSV文件中创建了名为df的数据框。数据框为

+---+---+---+--------+-------------------------------------------------+
|X  |Y  |Z  |class   |source                                           |
+---+---+---+--------+-------------------------------------------------+
|33 |36 |51 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|33 |36 |51 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|33 |35 |53 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|31 |37 |52 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|32 |36 |52 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|32 |36 |51 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|32 |36 |51 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|33 |36 |53 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|33 |35 |52 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
|33 |36 |52 |Eat_meat|Accelerometer-2011-03-24-13-21-39-eat_meat-f1.txt|
+---+---+---+--------+-------------------------------------------------+

我想应用StringIndexer将名为class的列转换为索引。我尝试了以下代码。

val indexer = new StringIndexer()
  .setInputCol("X")
  .setOutputCol("classIndex")

val indexed = indexer.fit(df).transform(df)
indexed.show()

此代码引发以下错误。

线程“主”中的异常java.lang.NoSuchMethodError:org.apache.spark.sql.expressions.UserDefinedFunction.asNondeterministic()Lorg / apache / spark / sql / expressions / UserDefinedFunction;在org.apache.spark.ml.feature.StringIndexerModel.transform

当我尝试应用转换功能时,会发生此错误。如何解决此错误?

scala apache-spark apache-spark-sql apache-spark-mllib
1个回答
0
投票

该问题可能由于版本不匹配而出现。检查此问题的答案是否有帮助。

Apache Spark: java.lang.NoSuchMethodError .rddToPairRDDFunctions

© www.soinside.com 2019 - 2024. All rights reserved.