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

    [大数据从入门到放弃系列教程]在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

    好了,今天就到这了

  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/blog5277/p/8615984.html
Copyright © 2011-2022 走看看