idea运行scala报错Error:(1, 12) object apache is not a member of package org
本人使用的是idea2020.1、spark2.1.1 、scala2.11.0
在网上找了很多文章,主要原因是缺少个什么jar包:Libraries-spark-assembly-1.0.0-hadoop1.0.4.jar,然后是spark2.0版本前lib目录下就有需要的jar包,但spark2.0之后jar包存在jars目录下,我就直接把jars目录下的jar包全部添加到项目的 library(jar包太多,我分不清,直接全部导入项目的 library),就可以解决问题了。(当然,本地电脑windows上还应有hadoop环境,配置hadoop家目录,不然会报 error … hadoop winutils … 的错误)
linux中的spark家目录下的文件:
具体的idea中scala、spark项目的创建流程如下:
-
创建maven项目(就普通创建即可,不用选择什么Create From archetype,然后设置项目名、路径,next -> Finish)
-
添加scala插件 离线或在线
File -> settings
-
添加scalaGlobal libraries
File -> Project Structure
④选择Browse添加本地下载好的scala的家目录(scala环境)
-
把spark的jars文件夹添加到项目的library(好多种方法添加)
File -> Project Structure
选择本地下载好的spark的jars文件
-
在pom.xml添加相应依赖,编写spark的wordcount进行测试
题外话:本人之前学习时,只用创建maven项目并在pom.xml里面添加依赖就可以编写调试scala代码,但是不知道是maven原因还是怎样,按原来的方法不行,就只能配置本地scala环境。
如果有什么更好的配置方法,希望大佬评论区透露一下。
<!--以之前学习只用在pom.xml里面添加依赖和build就可以编写调试scala代码,换了个机子后估计是配置有问题-->
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
<build>
<finalName>WordCount</finalName>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>