[英]Maven dependency “Cannot resolve symbol VectorAssembler'” in IntelliJ IDEA
当我在 Maven 中添加依赖项时,IntelliJ IDEA 无法导入 Spark mllib。 Spark 的其他部分没有问题。 在项目 Structure -> Libraries 中存在 spark mllib。
import org.apache.spark.ml.feature.VectorAssembler; -> Cannot resolve symbol 'VectorAssembler'
pom.xml:
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_2.12</artifactId>
<version>3.0.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
我尝试使用 Maven 存储库刷新 Maven 并清除文件夹。 没有任何帮助。
您将 mllib 依赖项指定为runtime
- 这意味着该依赖项是执行所必需的,而不是编译所必需的,因此它不会被放入类路径中以编译您的代码。 有关 Maven 中可用的不同范围的描述,请参阅此博客文章。
将所有 spark 依赖项( mllib
、 core
、 sql
)替换为单个依赖项(也删除 hadoop 依赖项):
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-mllib_${spark.scala.version}</artifactId>
<version>${spark.version}</version>
<scope>provided</scope>
</dependency>
其中变量定义为
<properties>
<spark.version>3.0.1</spark.version>
<spark.scala.version>2.12</spark.scala.version>
</properties>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.