idea scala 跑_Windows下IDEA运行scala版本的spark程序(踩坑总结)

首先,说一下,一般spark程序肯定都是打包然后放到Linux服务器去运行的,但是我们为什么还需要在Windows下运行spark程序。当然有它的道理: 因为我们很多人都是习惯在Windows系统下编写代码的,所以,如果能在Windows下运行spark程序的话,就非常方便我们进行本地测试,保证我们的代码没有问题,就不需要先打包到服务器运行,有问题又得返回Windows修改,然后再打包放服务器。

hadoop和spark安装配置

其实Windows下的hadoop和spark安装非常简单,其实就是下载包,然后解压就可以用了。直接到[Hadoop官网]和[Spark官网]。我下载的是这两个,记得hadoop和spark的版本要对应。

接着,把你的hadoop目录加到环境变量;最后,还需要下载你对应版本的winutils,然后加到你的hadoop的spark的bin目录下,这样你才能在Windows下运行spark程序。需要的小伙伴可以私聊我

IDEA和scala的安装配置

关于IDEA和Scala的安装配置,可以到我的另一篇文章[IntelliJ IDEA:Scala、sbt、maven配置教程],里面有详细的教程。

WordCount程序

WordCount词频统计,可以说是大数据的HelloWorld了,而我,在这一步就踩了很多的坑哭唧唧。下面附上代码。

无法新建scala类

创建了一个Scala的sbt项目,但是在点击右键——new——的时候,没有Scala Class这个选项,怎么办? 选择你的项目,然后点击右键——Project Structure——Libraries,接着点击+,选择Scala SDK,最后选择你的scala版本就可以了。

运行报错NoSuchMethodError

当你满怀期待地开始运行你的spark程序时,结果抛出异常java.lang.NoSuchMethodError,这个情况一般是scala与spark冲突造成的。在你下载spark的时候,要注意查看兼容什么版本的scala,然后下载使用对应的scala版本。

或者,你启动spark-shell的时候,也会有scala适配版本的信息。

无法加载主类

当你换完scala的版本之后,再次运行程序的时候,应该还会抛出无法加载或找不到主类的错误,这个时候你需要对项目重新进行编译,我的做法是,找到编译之后的class文件,将其删除,然后重新运行Run,这个时候会自动重新编译。 或者可以将你项目中这个文件夹.idea删除,然后重启IDEA。

运行报错NoClassDefFoundError

当我又再次运行程序时,又再次抛出错误java.lang.NoClassDefFoundError,真的心累。

出现这个错误的原因一般是你spark依赖包使用的scala版本与你项目使用的scala版本不一致。比如我的是sbt项目,需要修改build.sbt文件,让其版本对应。

无法导入scala自带的包

比如,像scala.util.parsing.json.JSON这样解析JSON的类,明明是scala自带的,但是在import的时候却一直报错。 解决方法如下:选择菜单FIle-->Project Structure-->Global Libraries,然后选择你的scala-sdk,点击右键,最后选择Add to Modules....。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值