Spark大数据分析与实战笔记(第一章 Scala语言基础-1)

文章目录

  • 章节概要
  • 1.1 初识Scala
    • 1.1.1 Scala的概述
    • 1.1.2 Scala的下载安装
    • 1.1.3 在IDEA开发工具中下载安装Scala插件
    • 1.1.4 开发第一个Scala程序

章节概要

Spark是专为大规模数据处理而设计的快速通用的计算引擎,它是由Scala语言开发实现的,关于大数据技术,本身就是计算数据,而Scala既有面向对象组织项目工程的能力,又具备计算数据的功能,同时Spark和Scala的紧密集成,本书将采用Scala语言开发Spark程序,所以学好Scala将有助于我们更好的掌握Spark框架。

1.1 初识Scala

1.1.1 Scala的概述

Scala于2001年由洛桑联邦理工学院(EPFL)的编程方法实验室研发,它由Martin Odersky(马丁•奥德斯基)创建。目前,许多公司依靠Java进行的关键性业务应用转向或正在转向Scala,以提高其开发效率、应用程序的可扩展性和整体的可靠性。

Scala是Scalable Language的简称,它是一门多范式的编程语言,其设计初衷是实现可伸缩的语言、并集成面向对象编程和函数式编程的各种特性。具体如下:

  1. Scala是面向对象的
    Scala是一种纯粹的面向对象语言,每一个值都是一个对象。对象的数据类型以及行为由类的特征来描述。

  2. Scala是函数式编程的
    Scala也是一种函数式语言,其函数可以作为值来使用。

  3. Scala是静态类型的
    Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。

  4. Scala是可扩展的
    Scala提供了许多独特的语言机制,它以库的方式能够轻易无缝添加新的语言结构 。

  5. Scala是可交互操作的
    Scala旨在与流行的Java进行良好的交互操作。Scala用Scala编译器把源文件编译成Java的class文件。我们可以从中调用Java类库,也同样可以从Java应用程序中调用Scala的代码。

1.1.2 Scala的下载安装

Scala语言可以运行在Windows、Linux、Mac OS等系统上。由于Scala是运行在JVM平台上的,所以安装Scala之前必须配置好JDK环境(JDK版本要求不低于1.5版本)。本书使用的JDK版本是jdk1.8。

  1. 在Windows下安装Scala
  • 下载Scala安装包。
    访问Scala官网The Scala Programming Language,单击【Download】进入下载页面,该页面可以下载最新的Scala版本。我们考虑到Scala的稳定性和Spark的兼容性,这里选择下载Scala2.11.8(下载地址为:Scala 2.11.8 | The Scala Programming Language )具体如下图所示:
    在这里插入图片描述

  • 解压Scala安装包并配置windows系统下的环境变量
    下载成功后,解压Scala的安装包scala-2.11.8.zip到自己需要的位置,并在Windows系统下配置环境变量,点击【此电脑】>【属性】>【高级系统设置】>【环境变量】,在系统变量中点击【新建】,变量值为自己解压的位置,如下图所示:
    在这里插入图片描述
    在path中添加Scala的bin目录,如下图所示:
    在这里插入图片描述

  • 进入Windows命令行,输入“scala”命令,测试Scala环境是否安装成功。如下图所示:
    在这里插入图片描述

  1. 在Linux下安装Scala
  • 下载Scala安装包,并将安装包上传到Linux系统/export/software
  • 执行tar -zxvf scala-2.11.8.tgz -C /export/servers/命令解压安装
  • 在Linux系统下添加Scala环境变量
  1. 在Mac下安装Scala
  • 下载Scala安装包并解压安装包至主目录下(如果找不到主目录,则回到桌面,按⇧⌘H进入电脑主目录)。
  • 执行“open ~/.bash_profile”,添加Scala的环境变量。
  • 输入“scala -version”命令,查看Scala的安装情况,若终端出现Scala的版本号,则说明Scala安装成功。

1.1.3 在IDEA开发工具中下载安装Scala插件

目前Scala的主流开发工具主要有两种:分别是Eclipse工具和IDEA工具,我们可以在这两个开发工具中安装对应的Scala插件进行Scala开发。

由于IDEA工具可以自动识别代码错误和进行简单的修复、以及IDEA工具内置了很多优秀的插件,所以现在大多数的Scala开发程序员都会选择IDEA作为开发Scala的工具。

本书将以Windows操作系统为例,分步骤讲解如何在IDEA工具上下载安装Scala插件,具体步骤如下。

  1. 下载IDEA安装包,打开安装包进行单击【Next】按钮进行安装,直到出现”Welcome to IntelliJ IDEA“界面则安装结束。

  2. 访问“https://plugins.jetbrains.com/plugin/1347-scala”,下载Scala插件。

  3. 单击IDEA主界面右下角的【Configure】→【Plugins】→【Install plugin from disk】→【OK】→【OK】,单击【Restart】按钮,重启IDEA工具,安装结束。

注:为了电脑能更好的使用,不要将所有软件都安装在C盘,可安装到其他盘符,读者自行选择

1.1.4 开发第一个Scala程序

  1. 创建工程。在IDEA工具主界面中单击【create New Project】创建工程,如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 创建包和Scala类。

  • 创建包
    选中“src”文件夹,右键选择【New】→【Package】按钮,输入包名,效果如图所示
    在这里插入图片描述
  • 创建类
    选中包名,右键选择【New】→【Scala Class】,并选择【Object】类型创建Scala类,类名为“HelloWorld”,效果如下图所示:
    在这里插入图片描述
  1. 在HelloWorld.scala文件中编写代码 ,代码如下。
object HelloWorld {
    def main(args: Array[String]) {
        println("Hello, world!")
    }
}
  1. 运行代码,控制台输出结果如下图所示。
    在这里插入图片描述
    注:IntelliJ IDEA版本不同,界面也会稍有不同,读者需根据版本自行确定。

转载自:https://blog.csdn.net/u014727709/article/details/132032236
欢迎start,欢迎评论,欢迎指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/87289.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python数据分析实战-找出两个列表中的不同元素(附源码和实现效果)

实现功能 使用 Python 的集合操作来实现找出两个列表中的不同元素。将两个列表转化为集合类型,然后使用集合的操作来找出不同的元素。 实现代码 list1 [1, 2, 3, 4, 5] list2 [3, 4, 5, 6, 7]set1 set(list1) set2 set(list2)diff set1.symmetric_difference…

ssl卸载原理

SSL卸载,也称为SSL解密,是一种将SSL加密数据流卸成非加密的明文数据流的过程。SSL卸载通常在负载均衡器、代理服务器、WAF等设备中实现,可以提高传输效率和安全性。 SSL卸载的原理是将SSL数据流拦截下来,通过设备内置的证书进行解…

Ansible学习笔记(一)

1.什么是Ansible 官方网站:https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html Ansible是一个配置管理和配置工具,类似于Chef,Puppet或Salt。这是一款很简单也很容易入门的部署工具,它使用SS…

《基础教育论坛》期刊简介及投稿要求

《基础教育论坛》杂志是经国家新闻出版总署批准、国内外公开发行的综合性教育学术期刊。作者可通过,中华人民共和国新闻出版总署的网站进行出版许可及刊号的查询。 2009年,《基础教育论坛(综合版)》杂志创刊。 2012年&#xff0…

HarmonyOS元服务开发实践:桌面卡片字典

HarmonyOS元服务开发实践:桌面卡片字典 本文转载分享自华为开发者论坛《HarmonyOS元服务开发实践:桌面卡片字典》,作者:蛟龙腾飞 一、项目说明 1.DEMO创意为卡片字典。 2.不同卡片显示不同内容:微卡、小卡、中卡、大卡…

框架分析(4)-Spring

框架分析(4)-Spring 专栏介绍Spring核心特点控制反转(IoC)面向切面编程(AOP)组件化集成简化开发总结 优缺点优点高度可扩展控制反转(IoC)面向切面编程(AOP)集…

UE学习记录03----UE5.2 使用MVVM示例

1.打开ue5.2新建C项目 2.项目中通过类导向新建C类,父类选择为UMVVMViewModelBase,创建完成会自动打开vs 3.在VS中对新建的类进行宏定义 使用 C 类向导 创建的类声明自动通过 UCLASS() 宏进行处理。 UCLASS() 宏使得引擎意识到这个类的存在,并…

期权分仓开户资金是否安全?具体保障措施有哪些?

网上关于期权分仓系统的真假一直都没有定论,两方人的争论也让很多没有接触过期权分仓系统的人摸不着头脑,那么期权分仓靠谱吗?资金在里面安全吗?下文为大家科普期权分仓开户资金是否安全?具体保障措施有哪些? 一、期权…

站点平台技术架构

系统架构部署思维导图 平台模块分配: 1.账号模块 2.权限模块 3.站点模块 4.配置模块 5.系统升级 6.日志模块 一、前期工作 1.系统保持一致性方案: GIT版本控制:通过总控端向租户端发送一个更新同步请求,租户端收到请求后执行GI…

房屋结构健康监测,科技助力让建筑更安全

房屋建筑是人们赖以生存的场所,然而当前我国许多房屋已经达到了使用寿命的中期,房屋的安全系数逐年降低,风险也随着时间的推移而累积。长期以来,我国的房屋普遍存在寿命短、隐患多的问题,“重建设,轻管理”…

【3维视觉】网格的谱分解和应用(GFT图傅里叶变换)

网格的谱分解即网格的频率分解,我们学过信号的傅里叶变换,将信号从空域变换到频域。二维图像由离散傅里叶变换DFT(Discrete Fourier Transform)。在图信号领域,也有图的傅里叶变换GFT(Graph Fourier Transform),网格可以看作是图&…

DevExpress WinForms数据编辑器组件,提供丰富的数据输入样式!(二)

DevExpress WinForms超过80个高影响力的WinForms编辑器和多用途控件,从屏蔽数据输入和内置数据验证到HTML格式化,DevExpress数据编辑库提供了无与伦比的数据编辑选项,包括用于独立数据编辑或用于容器控件(如Grid, TreeList和Ribbon)的单元格。…

关于slot-scope已经废弃的问题

说起来啊,这个问题啊,我之前一直没关注,还是webstorm给我的警告。 因为使用了element-ui的组件库,所以在使用组件的时候往往就cv大法了,直到今天用webstorm写代码是,提示了如下的错误 我这一看&#xff0c…

Springboot中sharding-jdbc的API模式并使用自定义算法

Springboot中sharding-jdbc的API模式并使用自定义算法 可配合AbstractRoutingData使用切换数据源 程序用到了AbstractRoutingData来切换数据源(数据源是自定义的格式编写并没有用springboot的自动装配的格式写),但是又用到sharding-jdbc进行…

基于微信小程序+Springboot校园二手商城系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、目前专注于大学生项目实战开发,讲解,毕业答疑辅导✌ 🍅文末获取源码联系🍅 👇&#x1f3…

【Java 高阶】一文精通 Spring MVC - 数据格式化器(六)

👉博主介绍: 博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家,WEB架构师,阿里云专家博主,华为云云享专家,51CTO 专家博主 ⛪️ 个人社区&#x…

接口经典题目

​ White graces:个人主页 🙉专栏推荐:《Java入门知识》🙉 🙉 内容推荐:继承与组合:代码复用的两种策略🙉 🐹今日诗词:人似秋鸿来有信,事如春梦了无痕。🐹 目录 &…

供应链安全和第三方风险管理:讨论如何应对供应链中的安全风险,以及评估和管理第三方合作伙伴可能带来的威胁

第一章:引言 在当今数字化时代,供应链的安全性越来越受到重视。企业的成功不仅仅依赖于产品和服务的质量,还取决于供应链中的安全性。然而,随着供应链越来越复杂,第三方合作伙伴的参与也带来了一系列安全风险。本文将…

RPC和HTTP协议

RPC 全称(Remote Procedure Call),它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。 它的核心目标是,让开发人员在进行远程方法调用的时候,就像调用本地方法一样,不需要额外为了完成这个交…

[JavaWeb]【十】web后端开发-SpringBootWeb案例(配置文件)

目录 一、参数配置化 1.1 问题分析 1.2 问题解决(application.properties) 1.2.1 application.properties 1.2.2 AliOSSUtils 1.2.3 启动服务-测试 二、yml配置文件 2.1 配置格式 2.1.1 新增 application.yml 2.1.2 启动服务 2.2 XML与prope…