【问题标题】:Maven dependency “Cannot resolve symbol VectorAssembler'” in IntelliJ IDEAIntelliJ IDEA 中的 Maven 依赖项“无法解析符号 VectorAssembler”
【发布时间】:2020-12-29 07:33:12
【问题描述】:

当我在 maven 中添加依赖项时,IntelliJ IDEA 无法导入 Spark mllib。与 Spark 的其他部分没有问题。在项目结构中-> 库中存在 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>

Project structure

我尝试使用 maven 的存储库刷新 maven 和清除文件夹。没有任何帮助。

【问题讨论】:

标签: java maven apache-spark intellij-idea


【解决方案1】:

您将 mllib 依赖项指定为 runtime - 这意味着执行需要依赖项,但编译不需要依赖项,因此不会将其放入类路径以编译您的代码。请参阅blog post 以了解 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>

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多