此问题已经在这里有了答案:
我已经从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
当我尝试应用转换功能时,会发生此错误。如何解决此错误?
该问题可能由于版本不匹配而出现。检查此问题的答案是否有帮助。
Apache Spark: java.lang.NoSuchMethodError .rddToPairRDDFunctions