[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world

原文链接:http://www.cnblogs.com/blog5277/p/8615984.html

原文作者:博客园--曲高终和寡

点击下面菜单查看大数据入门全部教程

大数据从入门到放弃

网址:

http://www.cnblogs.com/blog5277/category/1179528.html

**********************************分割***********************************

其实按理说,Java项目是完全可以开发spark项目的,并不是一定需要scala来开发.

但是天不遂人愿,新项目里面用到了supermap的组件,他们的组件对scala支持的更好一点,就表现在,用scala的话,某函数的入口参数只有两个

但是用java的话就有4个

然后我还完全不知道这些参数指的是啥,

那没办法,只能换scala了(再加上spark就是基于scala开发的,技多不压身,学一学呗)

万万没想到,我在用IDEA在集成scala的时候,遇到了这么多坑(部分是因为我自己对scala的认知不够)

下面进入正题:

**********************************分割***********************************

一.下载IDEA的scala插件

1.个人推荐方式:

在IDEA-->设置-->插件-->搜索scala-->在仓库里找-->往下面翻一点,找到scala,看一下对应的版本号,记住这个版本号

然后在:

http://plugins.jetbrains.com/plugin/1347-scala

去这里下载对应的版本(下载完的zip不要解压缩):

经过非常非常漫长的下载....下载完了之后返回IDEA,在设置页面选择添加本地的插件:

选择你刚刚下载完的zip,添加,apply一下,确定就可以了,IDEA会提示你重启idea生效,你重启一下,插件就装完了.

2.不太推荐的方式...在idea-->设置-->插件-->搜索scala-->在仓库中搜索这里,其实可以直接安装的...

明明这么方便,我为啥不推荐呢...因为在国内,这个插件的下载速度也太慢了...还很容易失败(方法一也巨慢无比,但是毕竟是用浏览器/迅雷下的,不会失败,失败了也会断点续传),而在这里,极其容易失败...

开$$走PAC/全局代理/V屁N的方法我都试了,并不能加快下载速度,让人绝望...

二,开始scala的hello world

1.在项目上,右键,添加框架支持,选中出现的Scala

2.(这一项是可选项,还是建议选的)在maven里加入scala相关的jar包和编译组件插件

这里引用了 菩提树下的杨过 大神的教程

https://www.cnblogs.com/yjmyzz/p/4694219.html

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-library -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>2.12.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-compiler -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-compiler</artifactId>
<version>2.12.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.scala-lang/scala-reflect -->
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>2.12.4</version>
</dependency> </dependencies> <build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<version>2.15.2</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

3.在项目main下,和java同一级,新建个文件夹叫scala,你在这个文件下下就可以新建scala项目了

4.这里介绍2种运行scala项目的方式,这里困扰了我好久...

5.用java方式调用

新建scala文件,用默认的方式建class文件,如下图:

在新建出来的scala文件里面,按 command + j (windows下应该是alt吧...不行就试试ctrl),或者手动照着下面敲也可以

输完后面的代码:

这个时候你会发现你运行不了...:

点它会出现控制台,然而这会你什么语法都不会..

所以没办法了,新建一个java文件来运行scala文件吧,可别忘了,scala也是jvm语言,再加上kotlin,这俩语言可是号称能和java项目"无缝衔接"的,scala项目当然能用java来运行了,如下图:

就把scala当一个java的类去调就行了,还是很方便的...的....吧...

6.直接运行scala文件

然而scala其实也有自己的运行方式,这点在创建文件的时候你要选择,不要用默认的class,要用object...(或者你把上面的class改成object也可以)

这样的话这里就有运行选项啦,注意区别,这里是object

好了,今天就到这了

[大数据从入门到放弃系列教程]在IDEA的Java项目里,配置并加入Scala,写出并运行scala的hello world的更多相关文章

  1. [大数据从入门到放弃系列教程]第一个spark分析程序

    [大数据从入门到放弃系列教程]第一个spark分析程序 原文链接:http://www.cnblogs.com/blog5277/p/8580007.html 原文作者:博客园--曲高终和寡 **** ...

  2. K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署

    Prometheus Operator不同于Prometheus,Prometheus Operator是 CoreOS 开源的一套用于管理在 Kubernetes 集群上的 Prometheus 控 ...

  3. 大数据-03-Spark入门

    Spark 简介 行业广泛使用Hadoop来分析他们的数据集.原因是Hadoop框架基于一个简单的编程模型(MapReduce).这里,主要关注的是在处理大型数据集时在查询之间的等待时间和运行程序的等 ...

  4. php从入门到放弃系列-01.php环境的搭建

    php从入门到放弃系列-01.php环境的搭建 一.为什么要学习php 1.php语言适用于中小型网站的快速开发: 2.并且有非常成熟的开源框架,例如yii,thinkphp等: 3.几乎全部的CMS ...

  5. php从入门到放弃系列-04.php页面间值传递和保持

    php从入门到放弃系列-04.php页面间值传递和保持 一.目录结构 二.两次页面间传递值 在两次页面之间传递少量数据,可以使用get提交,也可以使用post提交,二者的区别恕不赘述. 1.get提交 ...

  6. php从入门到放弃系列-03.php函数和面向对象

    php从入门到放弃系列-03.php函数和面向对象 一.函数 php真正的威力源自它的函数,内置了1000个函数,可以参考PHP 参考手册. 自定义函数: function functionName( ...

  7. 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)

    办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...

  8. php从入门到放弃系列-02.php基础语法

    php从入门到放弃系列-02.php基础语法 一.学习语法,从hello world开始 PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器&qu ...

  9. K8S 从入门到放弃系列文章目录(Kubernetes 1.14)

    1)软件环境 软件 版本 系统 Centos7.5 Kubernetes 1.14.1 Docker 18.09 Calico 3.6 Etcd 3.3.12 2)部署过程简单概要 三台master节 ...

随机推荐

  1. 如何在vscode中调试python scrapy爬虫

    本文环境为 Win10 64bit+VS Code+Python3.6,步骤简单罗列下,此方法可以不用单独建一个Py入口来调用命令行 安装Python,从官网下载,过程略,这里主要注意将python目 ...

  2. Dijkstra模板

    Dijkstra struct node { long long x,d; node(); node(long long xx,long long dd){ x = xx; d = dd; } }; ...

  3. yii js

    页面url拼接以及页面跳转 var baseUrl = '<?php echo Yii::$app->request->baseUrl ?>';var url = baseUr ...

  4. Web开发——JavaScript基础(JSON教程)

    参考: JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更 ...

  5. Django之Cookie、Session、CSRF、Admin

    Django之Cookie.Session.CSRF.Admin   Cookie 1.获取Cookie: 1 2 3 4 5 6 request.COOKIES['key'] request.get ...

  6. python框架之Django(15)-contenttype模块

    假如有一个书城系统,需要给作者和书籍加上评论功能.如果给每个表单独建一个评论表,那么我们以后要扩展其它模块评论功能的时候,还需要随之新建一张评论表,会显得很冗余.对于这种情况,Django 给我们提供 ...

  7. 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)

    1.0.0 Summary Tittle:[UML]NO.52.EBook.1.UML.1.012-[UML 大战需求分析]- 交互概览图(Interaction Overview Diagram) ...

  8. Spring 部分常用注解

    最近在Spring-MVC的项目,把一些自己在项目中使用到的注解整理一下. 1.@Controller 对应表现层的Bean,也就是Struts中对应的Action: 使用这个注解之后,就是把当前Be ...

  9. Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错

    解决办法 根据报错信息 , 去查看官方手册 在settings.py文件夹加入DATABASES['OPTIONS']['init_command'] = "SET sql_mode='ST ...

  10. 3.Python3变量与基本数据类型

    3.1保留字和标识符 3.1.1保留字 保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时不可以把保留字作为变量.函数.类.模块和其他对象的名称来使用.保留字如下: 3.1.2标识符 ...