我正在测试我在MLlib:Main Guide中找到的Scala代码 Machine Learning Library (MLlib) Guide
val df = data.map(Tuple1.apply).toDF("features")
但是这一行报告错误。
<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.11</artifactId>
<version>2.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
它说, “值toDF不是Seq的成员[(org.apache.spark.ml.linalg.Vector,)]”
好像值数据(Seq [Vector])没有map方法?
关于如何进行的任何想法?
以下是我的pom.xml
{{1}}
答案 0 :(得分:0)
此时,您没有SparkSession
或任何已启动的内容。我相信toDF
来自导入spark.implicits._
,其中spark
是SparkSession
。文档有时并不清楚和/或假设您在Spark shell中工作,它会自动创建会话。
您的代码确实在spark shell中运行。
答案 1 :(得分:0)
这是因为缺少scala.Seq
的隐式转换。
要解决您的问题,请添加这些行
val name = "application name"
val spark = SparkSession
.builder
.appName(name)
.master("local")
.getOrCreate()
import spark.implicits._
希望它有所帮助!