繁体   English   中英

IntelliJ IDEA 中的 Maven 依赖项“无法解析符号 VectorAssembler”

[英]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 依赖项( mllibcoresql )替换为单个依赖项(也删除 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM