大数据数据分析-scala、IDEA、jdk之间的搭配关系

Scala主要是一门面向对象编程语言和函数式编程语言。

一、大数据框架(处理海量/流式数据)

-        ---以HADOOP 2. x为系列的大数据生态系统处理框架

                离线数据分析,分析的数据为N+1天数据

        -----MapReduce

              并行计算框架,分而治之

  •                    - HDFS(存储数据)
    •            - YARN(分布式的集群资源管理和任务调度框架)

        ----Hive

                基于SQL处理框架,将SQL转换为MapReduce,处理存储在HDFS上的数据,并且运行在YARN上。

        -----SQOOP

        桥梁:RDBMS(关系型数据库)-HDFS/HIVE 导入导出

        ----HBASE

                大数据分布式数据库

                     与MapReduce进行集成,可以读取数据进行分析处理,

                       也可能将分析结果存储到HBase表中。

        -----以storm为体系实时流式数据处理框架

                数据实时产生 ->进行实时处理

                应用场景:

                        实时交通监控,电商营业额,双十一

        -----以spark为体系的大数据处理框架

                内存

                        将处理数据过程中的中间结果数据,存放到内存中

                        核心编程(基础编程)

  •                                 sparkCore
  •                                 SparkSQL
  •                                 SparkSteaming

                         高级编程

                                        机器学习/深度学习/人工智能

  •                                         SparkGraphx
  •                                         SparkMLlib
  •                                         Spark on R

 二、Scala下载

Scala官网: The Scala Programming Languageicon-default.png?t=N7T8https://www.scala-lang.org/

虚拟机镜像

Index of /centos-vault/7.6.1810/isos/x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source MirrorIndex of /centos-vault/7.6.1810/isos/x86_64/ | 清华大学开源软件镜像站,致力于为国内和校内用户提供高质量的开源软件镜像、Linux 镜像源服务,帮助用户更方便地获取开源软件。本镜像站由清华大学 TUNA 协会负责运行维护。icon-default.png?t=N7T8https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.6.1810/isos/x86_64/scala环境安装:

IntelliJ IDEA 2022.3版本支持多个Scala和JDK版本。以下是一些常见的Scala和JDK版本组合,适用于IntelliJ IDEA 2022.3:

  1. Scala 2.13.x与JDK 8、JDK 11或JDK 17:这是目前最新的Scala稳定版本,与多个JDK版本兼容。
  2. Scala 2.12.x与JDK 8或JDK 11:Scala 2.12.x是较旧的Scala版本,但仍然在许多项目中广泛使用。

--1,JAVA环境安装

        JAVA_HOME

        PATH

--2,SCALA环境安装

        SCALA_HOME

        PATH

--3,IDEA安装

        不同的idea版本对应不同的scala和jdk

三、SCALA中变量的声明

---val   value 简写,表示的意思为 值

           value name = "zhangsan"

           不可变

在SCALA语言中,variableType Inference,自动推断

当然也可以指定变量的类型,类型紧跟变量名后面,并使用分号隔开

val  xx : String = "xxx"

--var  variable简写,表示变量,可以改变的值

1.变量和常量
常量:在程序执行的过程中,其值不会被改变的变量 。

Java 与Scala变量和常量语法对比

Java

变量类型 变量名称 = 初始值
final 常量类型 常量名称 = 初始值
Scala

var 变量名 [: 变量类型] = 初始值

val 常量名 [: 常量类型] = 初始值

 2.键盘输入

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。

直接无缝衔接使用Java的键盘输入 —— Scanner

使用Scala提供的自带的键盘输入 —— StdIn.readxxx()

基本语法

  • StdIn.readLine()
  • StdIn.readShort()
  • StdIn.readDouble()

3.关键字说明

  1. package: 包,等同于java中的package
  2. object:关键字,声明一个单例对象(伴生对象)
  3. main方法:从外部可以直接调用执行的方法
  4. def 方法名称 ( 参数名称 : 参数类型 ) : 返回值类型 = { 方法体 }

Scala 完全面向对象,故scala去掉了Java中非面向对象的元素,如static关键字,void类型
1) static
scala无static关键字,由object实现类似静态方法的功能(类名.方法名)
class关键字和Java中的class关键字作用相同,用来定义一个类
2) void
对于无返回值的函数,scala定义其返回值类型为Unit类型

四、 For循环控制

基本语法:

// java for循环语法
for(int i = 0; i < 10; i++){System.out.println("i=" + i);
}// scala for循环语法
for(i <- 1 to 10){println("i=" + i)
}
// 输出:从1~10(包含 1 和 10 )
4.1范围数据循环(Until)

1)基本语法

// 方法一:
for(i <- 1 until 10) {print("i=" + i)
}
// 输出:从1~10(包含 1,不包含 10 )// 方法二:
for(i <- Range(1,10)) {print("i=" + i)
}
4.2循环守卫
 基本语法:
for(i <- 1 to 3 if i != 2){print(i + " ")
}
4.3循环步长by

2)基本语法:

    for(i <- 1 to 10 by 2){print("i=" +i)}
 4.4嵌套循环

3)基本语法:

    //  嵌套循环for(i <- 1 to 3;j <- 1 to 3) {println("i=" +i+ "j=" +j)}
4.5引入变量
    //  引入变量for(i <- 1 to 3; j = 4 - i){println("i=" + i + "j=" +j)}
//    等价于for(i <- 1 to 3) {var j = 4 - iprintln("i=" + i + "j=" +j)}
4.6循环返回值
    val res = for (i <- 1 to 10) yield iprintln(res)//  需求:将原数据中所有值乘以2,并把数据返回到一个新的集合中。var res_l = for (i <- 1 to 10) yield {i * 2}println(res_l)

五、函数

1)函数可以作为值进行传递

    def f(n: Int): Int = {println("f调用")n + 1}//  调用f(123),返回值124,将返回值赋给val变量resultvar result: Int = f(123)println(result)

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Java数据结构二叉树练习

1.检查两棵二叉树是否都是相同的练习 我要求时间复杂度为1&#xff0c;所以我们不用前序中序后序是否都一样来进行判断 如何判断二叉树是否都是相同的子问题方式 先判断根节点是否相同 再判断左子树和右子树是否都是相同的 先用代码判断不相同的情况&#xff0c;都相同的化…

多线程JUC 第2季 wait和notify唤醒机制

一 wait和notify的区别与相同 1.1 wait和notify的作用 1) 使用wait()、notify()和notifyAII()时需要先对调用对象加锁。否则直接调用的话会抛出 IllegalMonitorStateExceptiona。 2) 调用wait()方法后&#xff0c;线程状态。由RUNNING变为WAITING&#xff0c;并将当前线程放置…

pyinstaller打包不显示DOS窗口

1 使用pyinstaller 打包 会不显示DOS窗口 打包的时候把-w去掉就行了

微信小程序开发学习笔记——4.1小程序官方api文档showToast提示框

>>跟着b站up主“咸虾米_”学习微信小程序开发中&#xff0c;把学习记录存到这方便后续查找。 课程连接&#xff1a;https://www.bilibili.com/video/BV19G4y1K74d?p26&vd_source9b149469177ab5fdc47515e14cf3cf74 一、showToast属性 https://developers.weixin.q…

Chapter 16 Techniques of Design-Oriented Analysis: Extra Element Theorems

Chapter 16 Techniques of Design-Oriented Analysis: Extra Element Theorems 这一章介绍Middlebrook’s Extra Element Theorem (EET), 这是一个强力的分析复杂电路传输函数的工具. 16.1 Extra Element Theorem 对于一个已知的传输函数, Extra Element Theorem可以帮助算出…

Java学习笔记(15)

JDK7前时间相关类 Date时间类 Simpledateformat Format 格式化 Parse 解析 默认格式 指定格式 EE&#xff1a;表示周几 Parse&#xff1a;把字符串时间转成date对象 注意&#xff1a;创建对象的格式要和字符串的格式一样 Calendar日历类 不能创建对象 Getinstance 获取当…

Qt for Mac阻止MacOS系统休眠

Qt开发的应用程序如果电脑休眠了会影响软件的使用&#xff0c;因此在软件的使用过程中需要防止电脑休眠&#xff0c;在Win上有专门的API进行处理&#xff0c;在Mac上也必需使用Mac平台自身的API&#xff0c;本篇介绍在Mac平台下使用Qt阻止Mac系统休眠。 要调用Mac系统的API&am…

leetcode代码记录(整数拆分

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入…

PMP-第二章-项目运作环境

2.1 项目所受的影响 2.2 事业环境因素 Enterprise Environmental Factors(EEF) 定义&#xff1a;项目团队不能控制的、将对项目产生影响、限制或指令作用的各种条件 特点&#xff1a; 大多数项目管理过程的输入(例外&#xff1a;人力资源管理过程)可能提高或限制项目管理的灵…

[论文精读]Dynamic Coarse-to-Fine Learning for Oriented Tiny Object Detection

论文网址&#xff1a;[2304.08876] 用于定向微小目标检测的动态粗到细学习 (arxiv.org) 论文代码&#xff1a;https://github.com/ChaselTsui/mmrotate-dcfl 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&…

2024年腾讯云免费服务器申请领取入口

腾讯云免费服务器申请入口 https://curl.qcloud.com/FJhqoVDP 免费服务器可选轻量应用服务器和云服务器CVM&#xff0c;轻量配置可选2核2G3M、2核8G7M和4核8G12M&#xff0c;CVM云服务器可选2核2G3M和2核4G3M配置&#xff0c;腾讯云服务器网txyfwq.com分享2024年最新腾讯云免费…

离散数学——(6)谓词逻辑的翻译,谓词的合式公式,约束变元及换名,闭式,谓词的等价,谓词的等价式和蕴含式

目录 1.谓词逻辑的翻译 2.谓词的合式公式 1.原子谓词公式 3.约束变元及换名 1.换名规则 4.闭式 5.谓词的等价 1.命题公式的推广 2.量词与联结词之间的关系 6.谓词的等价和蕴含式 量词分配率等价式 多重量词等价式 蕴含式 1.谓词逻辑的翻译 2.谓词的合式…

Python爬虫 Day1

要注意看网页的请求方式是request还是get 一、小型爬虫 &#xff08;爬百度首页&#xff09; from urllib.request import urlopen url "https://www.baidu.com" resp urlopen(url) print(resp.read().decode(utf-8)) print("over!") //&#xff01;&am…

【云原生进阶之数据库技术】第三章-PostgreSQL-管理-2.1-安装部署

1 PostgreSQL安装 数据库安装包:PostgreSQL数据库(https://www.postgresql.org/download/windows/) 数据库管理工具:Navicat for PostgreSQL (如V11.1) 数据库建模工具:PowerDesigner (如V16.5) 1.1 在Linux系统上配置安装PostgreSQL 1.1.1 下载安装 访问官网下载地址…

json-server库的使用,实现数据模拟

项目目录 安装 npm i -g json-server0.17.4 启动单个json服务&#xff0c;在cookbook目录下执行命令&#xff1a; json-server ./mock/a.json -p 9000 待实现 使用0.17.4版本即可。

从排序算法的艺术看C语言qsort函数的魅力:一场数据的时空穿越

欢迎来到白刘的领域 Miracle_86.-CSDN博客 系列专栏 C语言知识 先赞后看&#xff0c;已成习惯 创作不易&#xff0c;多多支持&#xff01; 目录 一 、回调函数 二、qsort函数 1.qsort函数排序整型数据 2.qsort函数排序结构数据 一 、回调函数 何为回调函数&#xff1…

Ansible playbook格式 语法 Ansible playbook格式入门演示 基础了解

目录 Ansible playbook格式简介实例运行结果 Ansible playbook格式简介 playbook由YMAL语言编写。YAML( /ˈjməl/ )参考了其他多种语言&#xff0c;包括&#xff1a;XML、C语言、Python、Perl以及电子邮件格式RFC2822&#xff0c;Clark Evans在2001年5月在首次发表了这种语言…

【C/C++】C/C++招聘信息管理系统(源码)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

大数据 - Spark系列《十四》- spark集群部署模式

Spark系列文章&#xff1a; 大数据 - Spark系列《一》- 从Hadoop到Spark&#xff1a;大数据计算引擎的演进-CSDN博客 大数据 - Spark系列《二》- 关于Spark在Idea中的一些常用配置-CSDN博客 大数据 - Spark系列《三》- 加载各种数据源创建RDD-CSDN博客 大数据 - Spark系列《…

Arduino RP2040 LittleFS的使用介绍

Arduino RP2040 LittleFS的使用 &#x1f4cc;RP2040基于Earle F. Philhower, III的开发核心固件&#xff1a;https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json&#x1f388;相关开发文档在线说明&#xff1a;https://ardu…