1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html Scal
高阶函数是指使用其他函数作为参数、或者返回一个函数作为结果的函数。在Scala中函数是“一等公民”,所以允许定义高阶函数。这里的术语可能有点让人困惑,我们约定,使用函数值作为参数,或者返回值为函数值的“函数”和“方法”,均称之为“高阶函数”。
使用List(元素1, 元素2, 元素3, ...)来创建一个不可变列表,语法格式:
创建变长数组,需要提前导入ArrayBuffer类 import scala.collection.mutable.ArrayBuffer
Scala 是 Scalable Language 的简写,是一门多范式的编程语言。Java平台的Scala于2003年底/2004年初发布。 Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。Scala 源代码被编译成 Java 字节码,所以它可以运行于 JVM 之上,并可以调用现有的 Java 类库。
早期,scala刚出现的时候,并没有怎么引起重视,随着Kafka和Spark这样基于scala的大数据框架的兴起,scala逐步进入大数据开发者的眼帘。scala的主要优势是它的表达性。
在Scala中,它和Java一样也是拥有方法和函数。Scala的方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说,在类中定义的函数即是方法。
有一个列表,分别包含几下文本行:"01 hadoop", "02 flume", "03 hive", "04 spark"
继续Scala从零起步系列,在前文分享变量和标识符的基础上,本文介绍Scala中的运算符。简单地说,Scala中的运算符和其他编程语言中的运算符并无太大区别,更多都是相同或者相近的,但是出于系列文章的内容完整性,仍然单开此文对其予以介绍。
scala 中的所有集合类位于 scala.collection 或 scala.collection.mutable,scala.collection.immutable,scala.collection.generic 中
由于Spark主要是由Scala编写的,虽然Python和R也各自有对Spark的支撑包,但支持程度远不及Scala,所以要想更好的学习Spark,就必须熟练掌握Scala编程语言,Scala与Java较为相似,且在Scala中可以调用很多Java中的包,本文就将针对Scala中的基础数据结构、循环体以及错误处理机制进行基础的介绍;
---- Set Set(集)是代表没有重复元素的集合。Set具备以下性质: 元素不重复 不保证插入顺序 和List正好相反, List: 元素可以重复 保证插入顺序 scala中的集也分为两种,一种是不可变集,另一种是可变集。 不可变集 定义 语法 创建一个空的不可变集,语法格式: val/var 变量名 = Set[类型]() 给定元素来创建一个不可变集,语法格式: val/var 变量名 = Set(元素1, 元素2, 元素3...) 示例一 定义一个空的不可变集 参考代码 scala> val a
Option 是一个表示有可能包含值的容器。 Option 本身是泛型的,并且有两个子类: Some[T] 或 None
SparkSQL简介及入门 一、概述 Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。它提供了一个称为DataFrame(数据框)的编程抽象,DF的底层仍然是RDD,并且可以充当分布式SQL查询引擎。 1、SparkSQL的由来 SparkSQL的前身是Shark。在Hadoop发展过程中,为了给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,是当时唯一运行在hadoop上的SQL-on-Hadoop工具。但是,MapReduc
在《大数据之脚踏实地学10--Hive独立式安装》一文中我们已经介绍了Hive工具的安装流程,基于Hive可以轻松的在Hadoop集群内实现SQL语句的落地。如果没有她,数据的管理操作都要通过编写Java代码,运行Map-Reduce,那将是一件非常头疼的事。
本篇作为scala快速入门系列的第二十九篇博客,为大家带来的是关于模式匹配的内容。
除了在模式匹配中使用之外,unapply 方法可以让你结构 case class 来提取它的字段,如:
Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。它提供了一个称为DataFrame(数据框)的编程抽象,DF的底层仍然是RDD,并且可以充当分布式SQL查询引擎。
当前最著名的交互式编程环境莫属Jupyter Notebook了,程序员可以启动一个交互的Session,在这Session中编写代码、执行程序、获取结果,所见即所得。
所有集合的根是Iterator,它提供了一组公共方法,可以用来迭代处理和管理集合数据。
本篇作为scala快速入门系列的第三十六篇博客,为大家带来的是关于高阶函数的内容。
2.1 运行Scala代码 感谢Scala.js项目,我们可以在浏览器中运行Scala代码。点击ScalaFiddle开始我们的Scala之旅吧! 2.2 Scala的特性 每一种编程语言的存在都有意义,Scala存在的意义是为了让那些热爱编程的人更加热爱编程。Scala的设计简洁而优雅,很多地方都彰显了编程语言的一致性,例如在Scala的世界里: 一切都是对象 你可以直接调用基本类型上的方法: 1.toDouble // 1.0 10.toHexString // a "1".toInt
《Spark Core源码精读计划3 | SparkContext辅助属性及后初始化》
作为一种在Java虚拟机(JVM)上运行的静态类型编程语言,Scala结合了面向对象和函数式编程的特性,使它既有强大的表达力又具备优秀的型态控制。
在scala专栏已经写过两篇博文,为大家详细地介绍了如何在windows上安装scala并与IDEA进行集成。
在本节中,您将了解Flink为编写有状态程序提供的api。请参阅有状态流处理以了解有状态流处理背后的概念。
Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。
层级1 :Iterable指的是哪些能生成涌来访问集合中所有元素的Iterator的集合
到Scala官方下载地址下载:http://scala-lang.org/download/
Play Framework从问世至今已经十个年头了,但是可惜的是这么优秀的框架在国内却鲜为人知。尤其是当Play Framework 2.x发布以后,基于Scala语言重写了整个框架。当Scala和Play Framework相遇,这本该是一段美好的佳话,可结局却是,面对Scala语言更多的人望而却步。 这其实都是因为人们潜意识里对未知事物充满恐惧。但其实Scala没那么可怕,相反了解它一点你会觉得它很可爱。例如很多人看到Scala使用::拼接元素,使用:::拼接列表,例如: val list1 = Li
上一篇文章中我对新一代大数据处理引擎Flink做了简单的介绍,包括:批量计算与流式计算的区别、流式计算引擎的重要性,以及Flink相比其他流式计算引擎的优势。因为Flink性能优秀,解决了之前流式计算引擎的痛点,非常适合电商促销、风险控制、异常检测、金融交易等领域,阿里、腾讯、华为、美团、滴滴等大公司为了保证业务的实时性,正在积极将Flink部署在生产环境。Flink是当前大数据界冉冉升起的新星。比起Hadoop和Spark,精通Flink技术的人才相对较少,因此,掌握Flink技术对于转行或跳槽的朋友来说显得越发重要。
:: (两个冒号)操作符是右结合的,如果要构建一个列表List(1,2,3,4),实际上也可以采用下面的方式,Nil表示空列表。
在上一期的《大数据之脚踏实地学15--Scala的数组操作》分享中,介绍了Scala的数组相关知识,借助于Array函数可以构造定长数组(即数组一旦定义好长度,就无法对元素个数做影响),而通过ArrayBuffer函数则可以构造变长数组。在本期中将介绍Scala的其他常用的数据结构,包括列表、元组和映射。
本篇作为scala快速入门系列的第十三篇博客,为大家带来的是关于列表的相关内容。
前面我们已经学习了特质类似接口,其可以被继承,同时如果需要继承多个特质的话,则需要使用extends…with…进行继承。其类似java中的接口和抽象方法的结合体,但又比java中的其要强大,因为其可以定义抽象字段和普通字段、抽象方法和普通方法。而在java中接口中可以定义常量,不能定义变量。同时特质还可以继承class类,而在java中接口通常是用来实现的。
---- iterator迭代器 scala针对每一类集合都提供了一个迭代器(iterator)用来迭代访问集合 使用迭代器遍历集合 使用iterator方法可以从集合获取一个迭代器 迭代器的两个基本操作 hasNext——查询容器中是否有下一个元素 next——返回迭代器的下一个元素,如果没有,抛出NoSuchElementException 每一个迭代器都是有状态的(只能用一次, 内部指针只走一次, 走到最后就结束了, 不会再回到开头, 除非你再取得一个新的迭代器) 迭代完后保留在最后
集合 scala的集合分为可变集合和不可变集合,其中可变集合的增删改查都是作用于它本身;而不可变集合的增删改操作返回的是一个新的集合,原不可变集合保持不变。函数式编程常使用不可变集合,scala默认使用的也是不可变集合。他们对应的包分别为:scala.collection.immutable(不可变)和scala.collection.mutable(可变)。 常见的可变集合: ArrayBuffer,ListBuffer,LinkedList,DoubleLinkedList,MutableList,Qu
在前面的一系列Scala编程基础中,我们介绍了Scala的基本语法、控制流、自定义函数、数据结构等内容。从本期开始将会陆续介绍Scala中面向对象的编程内容,包括类、对象、继承以及特质等。
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、Ant、JUnit、CVS整合、代码审查、创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。
第一章:基础 1、声明变量:val name1,name2: String=”hello” val不可变变量,var可变。 2、常用类型:Byte、Char、Short、Int、Long、Float、Double、Boolean。但是不像Java这里是是实实在在的类,具有方法。 3、+-*/等操作符其实是方法:a + b类似于a.+(b).Scala中可以将方法调用的.省略:如1.to(10) 类似于1 to 10。 4、没有++操作符,因为Scala中大部分的算术类型都是不可变的如Int类型。 5、Sca
1,安装Java 2,配置Java环境变量 3,安装Scala 4,配置Scala环境变量 参考文末阅读原文链接。
不论是哪种Kafka,本质上都基于core Apache Kafka 那就来说说Apache Kafka版本号的问题
继续开工Scala系列专题,虽然对自己来说这是一个全新的方向和足够的挑战,阅读数也很是惨淡,但选择了方向就要坚持下去——生活中的获得感不正是源于一个个挑战和抉择之间吗!
如果不了解各个版本之间的差异和功能变化,怎么能够准确地评判某Kafka版本是不是满足你的业务需求呢?
领取专属 10元无门槛券
手把手带您无忧上云