IDEA+scala插件开发spark程序

2023-05-16

spark由scala语言编写,开发spark程序,自然也少不了scala环境,这里介绍如何利用Intellij IDEA开发spark。

1、环境准备。jdk,scala,idea这些对于本文来说都已经默认安装。

2、idea中安装scala language插件。File->Settings->Plugins->Browse Repositories,搜索scala。选中Scala,点击Install。


3、新建java工程。

4、设置scala sdk。File->Project Structure->Libraries->+,新建Scala SDK。


如果之前没有配置过系统的scala sdk,选择Browse,指定系统中安装的scala位置。

                             

5、导入spark-library。继续上一步中的File->Project Structure->Libraries->+Java。新建一个java的库,然后导入spark的jar包。最后可以对jar文件夹命名。这里我叫spark-lib。


最终形成的libary长这样子。


6、设置sources。File->Project Structure->Modules->Sources->src。这里选中src,右键New Folder取名main,然后在main下面new folder:java,resources,scala。最后右键scala文件夹,选择Sources。然后右侧的+Add Content Root下面就会增加src\main\scala作为源文件夹。


如果不设置源文件夹或者设置错误,后面运行spark程序会出错。

不设置时,报错


错误: 找不到或无法加载主类 scala.HelloWorld  

main,main\scala文件夹均设置为Sources就会报如下错误,因此只需要设置scala文件夹为Sources。


Error:(5, 8) HelloWorld is already defined as object HelloWorld
object HelloWorld {  

7、编写程序。右键scala文件夹->New->Scala Class->选择object。

                                

编码如下:


  

package scala
import org.apache.spark.{SparkConf, SparkContext}

object HelloWorld {
  def main(args: Array[String]): Unit = {
    val logFile = "E:\\software\\spark-2.3.0-bin-hadoop2.7\\helloSpark.txt"
    val conf = new SparkConf().setAppName("wordcount").setMaster("local")
    val sc = new SparkContext(conf)
    val rdd = sc.textFile(logFile)
    val counts = rdd.flatMap(line=>line.split(",")).map(x=>(x,1)).reduceByKey((x,y)=>(x+y))
    counts.foreach(println)
    sc.stop()
  }
}  

运行,Ctrl+Shift+F10。

以下是部分日志,单词统计结果出现在日志中:


2018-04-04 23:32:57 INFO  Executor:54 - Running task 0.0 in stage 1.0 (TID 1)
2018-04-04 23:32:57 INFO  ShuffleBlockFetcherIterator:54 - Getting 1 non-empty blocks out of 1 blocks
2018-04-04 23:32:57 INFO  ShuffleBlockFetcherIterator:54 - Started 0 remote fetches in 6 ms
(scala,1)
(spark,2)
(hello,3)
(sparkui,1)
(java,1)
2018-04-04 23:32:57 INFO  Executor:54 - Finished task 0.0 in stage 1.0 (TID 1). 1138 bytes result sent to driver
2018-04-04 23:32:57 INFO  TaskSetManager:54 - Finished task 0.0 in stage 1.0 (TID 1) in 56 ms on localhost (executor driver) (1/1)
2018-04-04 23:32:57 INFO  TaskSchedulerImpl:54 - Removed TaskSet 1.0, whose tasks have all completed, from pool 
2018-04-04 23:32:57 INFO  DAGScheduler:54 - ResultStage 1 (main at <unknown>:0) finished in 0.072 s
2018-04-04 23:32:57 INFO  DAGScheduler:54 - Job 0 finished: main at <unknown>:0, took 0.859162 s
2018-04-04 23:32:57 INFO  AbstractConnector:318 - Stopped Spark@1f4c2977{HTTP/1.1,[http/1.1]}{0.0.0.0:4040}
2018-04-04 23:32:57 INFO  SparkUI:54 - Stopped Spark web UI at http://10.119.9.164:4040  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA+scala插件开发spark程序 的相关文章

随机推荐

  • No configuration found for this host:tier1

    flume启动时 xff0c 如果没有通过参数 name 或者 n 指定代理 xff0c 那么默认使用tier1作为代理名称 xff0c 启动成功后 xff0c 不会报错 xff0c 但是可能会提示如题警告 flume conf配置文件默认
  • linux下通过pip安装最新uwsgi

    通过yum install uwsgi 安装的uwsgi在进行测试的时候 xff0c 发现版本是2 0 15 但是启动uwsgi测试的时候报参数错误 xff0c 后来改用pip安装 先yum remove uwsgi删除老的uwsgi 就成
  • 将原有python复制到anaconda虚拟环境后,可以激活但是不显示的问题

    第一步参考 如何在已安装Python条件下 xff0c 安装Anaconda xff0c 并将原有Python添加到Anaconda中 amazingym 博客园 发现conda info e 不显示环境 xff0c 但是用文件夹名称可以顺
  • pip更改国内源

    默认情况下 xff0c pip安装一个工具 xff0c 是通过使用官方的源 https pypi python org simple xff0c 速度上是一个很大的问题 xff0c 例如 xff0c 安装tensorflow 默认第一个下载
  • win7+vmware12+mac10.10安装过程

    win7 43 vmware12安装mac10 11 10 12 10 13均失败 xff0c 最终安装mac10 10成功 xff0c 不知道是不是硬件不支持 这里记录一下mac10 10虚拟机安装的过程 默认情况下 xff0c vmwa
  • mac虚拟机安装之后需要做这些

    一 让mac使用体验更好 mac虚拟机安装完成之后 xff0c 需要让系统用起来顺畅 xff0c 鼠标滑动平稳 xff0c 需要安装vmware tools工具 这里需要下载vmwaretools镜像 我这里名字叫 VMware 43 To
  • mac系统pip安装package路径问题

    默认情况下 xff0c 通过pip安装会提示Permission Denied 这时候通过sudo pip install xxx可以安装 xff0c 但是安装的路径不是系统默认的路径 xff0c 再次通过pip list列出已经安装过的工
  • xcrun: error: invalid active developer path解决办法

    mac下如果安装过xcode 之后又卸载 xff0c 再使用git等命令时就提示错误 invalid active path Applications Xcode app Contents Developer 一般情况可以通过xcode s
  • Hue安装与配置

    Hue是cloudera提供的hadoop ui 利用它可以很直观的操作和查看hadoop生态应用 一般安装cloudera manager之后会自动带有hue管理界面 xff0c 通过http hueserver 8888即可访问 另外
  • aapt查看apk应用信息

    aapt是Android asset package tools 利用aapt命令可以很方便的查看app包信息 linux下安装配置aapt 先下载aapt 然后放入 usr bin目录 xff0c 并改变权限为可执行文件 aapt帮助 以
  • Git-TortoiseGit使用报错:cannot spawn xxx\bin\ssh.exe: No such file or directory fatal

    一般开发都是用eclipse自带的git插件提交代码 xff0c 今天试了一把TortoiseGit的提交 结果报错 查看TortoiseGit gt Settings xff1a 发现这里环境变量和设置的环境变量不一致 xff0c 猜测是
  • windows+spark本地运行环境搭建

    spark作为一个内存mapreduce框架 xff0c 速度是hadoop的10倍甚至100倍 windows下可以通过简单设置 xff0c 搭建本地运行环境 1 下载spark预编译版本 xff0c spark运行环境依赖jdk sca
  • git clone 报错:Peer reports incompatible or unsupported protocol version解决办法

    git通过git clone下载github上的资源到机器上 xff0c 结果出现如题所示的错误 root 64 server data git clone https github com pingcap tidb docker comp
  • explian使用介绍

    1 xff09 id列数字越大越先执行 xff0c 如果说数字一样大 xff0c 那么就从上往下依次执行 xff0c id列为null的就表是这是一个结果集 xff0c 不需要使用它来进行查询 2 xff09 select type列常见的
  • centos7安装rustup

    rust安装 xff0c 因为被墙的原因 xff0c 在国内几乎很难安装 xff0c 需要通过代理安装 但是rustup却很容易 xff0c 一般在linux下 xff0c 通过官方指定的下列语句 xff0c 基本可以安装rustup cu
  • TiDB在Centos7上通过源码编译安装

    这里难以编译安装的是tikv tidb的三大部分tidb pd tikv中tidb pd均是采用go语言编写 xff0c 安装go语言包即可编译 xff0c 唯独tikv是采用rust语言写的 xff0c 他的编译是最复杂的 而且编译环境非
  • Cloudera Manager 5.12.0图文详解安装过程

    这里介绍的是cdh5的离线安装方式 xff0c 需要的文件提前准备好 xff0c 安装过程会快一些 安装前提 xff1a 机器配置内存一定要高 xff0c 我这里安装的虚拟机均是redhat7 xff1a 内存分别是6G 4G 4G 准备的
  • Failed to get D-Bus connection: Operation not permitted

    docker容器centos7中 xff0c 通过systemctl start service出现下错误 Failed to get D Bus connection Operation not permitted docker中的容器启
  • C++中如何求数组长度

    C 43 43 中没有直接提供求数组长度的方法 xff0c 提供了sizeof begin end 等方法 xff0c 可以供求数组长度使用 可以通过两种方式来求数组长度 xff0c 这里使用模版类 一个是使用sizeof 做除法 xff0
  • IDEA+scala插件开发spark程序

    spark由scala语言编写 xff0c 开发spark程序 xff0c 自然也少不了scala环境 xff0c 这里介绍如何利用Intellij IDEA开发spark 1 环境准备 jdk scala idea这些对于本文来说都已经默