而Idea 可以很好的支持Java和Scala的开发。 Scala执行流程分析 ? Scala程序开发注意事项(重点) Scala源文件以 “.scala" 为扩展名。...Scala程序的执行入口是main()函数。 Scala语言严格区分大小写 Scala方法由一条条语句构成,每个语句后不需要分号(Scala语言会在每行后自动加分号),这也体现出Scala的简洁性。...如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号。...rk”); Scala语言输出的三种方式 字符串通过+号连接(类似java)。...源码的查看的关联 在使用scala过程中,为了搞清楚scala底层的机制,需要查看源码,下面看看如果关联和查看Scala的源码包 ?
object作为伴生对象时必须和类在同一个源文件中定义,并且可以相互访问私有属性。...中一切都是表达式,如果表达式含有多条语句,则使用大括号"{}"括起来,形成一个块表达式,块表达式的最后一条语句的值作为整个块的返回值。...6 常用类介绍 6.1 String 在Scala中,String更加方便好用: //原始字符串一对三引号`"""`括起来,可包含多行字符串,内容不需要转义 """Welcome here....Future的独特之处在于它的值只能被写入一次,之后就会变为一个不可变值,其中包含成功或失败信息。...第1行import语句导入了一个隐式的ExecutionContext,你可以把它理解成是一个线程池,Future类在需要时会自动使用其上的线程。在Scala中你不需要直接和线程打交道。
分布式缓存 7-重启策略 8-Flink中的窗口 9-Flink中的Time Flink时间戳和水印 Broadcast广播变量 FlinkTable&SQL Flink实战项目实时热销排行 Flink写入...RedisSink Flink消费Kafka写入Mysql Scala IF...ELSE 语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。...$ scala Test x < 20 ---- if...else 语句 if 语句后可以紧跟 else 语句,else 内的语句块可以在布尔表达式为 false 的时候执行。...$ scala Test x 大于 20 ---- if...else if...else 语句 if 语句后可以紧跟 else if...else 语句,在多个条件判断语句的情况下很有用。...$ scala Test X 的值为 30 ---- if...else 嵌套语句 if...else 嵌套语句可以实现在 if 语句内嵌入一个或多个 if 语句。
如果是多行代码写在一行, 则中间的分号不能省略, 最后一条代码的分号可省略不写. 示例: println("Hello, Scala!")...//最后的分号可写可不写 //如果多行代码写在一行, 则前边语句的分号必须写, 最后一条语句的分号可以省略不写. println("Hello"); println("Scala") 2....语法 val/var 变量名 = s"${变量/表达式}字符串" 注意: 在定义字符串之前添加s 在字符串中,可以使用${}来引用变量或者编写表达式 示例 请定义若干个变量,分别保存:“zhangsan...= "zhangsan"""" println(sql) 4.4 扩展: 惰性赋值 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行。...语法格式: lazy val/var 变量名 = 表达式 示例 在程序中需要执行一条以下复杂的SQL语句,我们希望只有用到这个SQL语句才加载它。
,match是模式匹配的关键字,后面紧跟的{}中包含若干条匹配的方向,且只会匹配其中满足条件的第一条;对于每一条条件,都是以case关键字开头,紧跟匹配的模式,且_表示匹配任何模式,接着是=>,指向对应的执行语句...} } } 可以看出,在第一个模式匹配语句中,匹配到对应的"Hadoop"字符串对象之后,执行了对应的语句;在第二个模式匹配语句中,_指定了匹配任意对象,并执行了对应的输出; 2.2 结合条件语句... 在我们的模式匹配语句中,可以添加条件语句,在Scala中这叫做守卫,下面是一个简单的例子: object main{ def main(args: Array[String]): Unit =...} } //调用函数 isMale(0) isMale(1) isMale(2) } } 2.3 结合变量 在Scala的模式匹配中,我们还可以在模式语句内直接赋以新变量...Scala中的错误处理机制,其实catch{}语句中的各条执行语句就是一条条的模式匹配语句,这里便不再赘述。
1、scala解释器 后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。...退出解释器 在scala命令提示窗口中执行:quit,即可退出解释器 2、声明变量 语法格式 Java变量定义 int a = 0; 在scala中,可以使用val或者var来定义变量,语法格式如下:...惰性赋值 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行。这些SQL语句,如果直接加载到JVM中,会有很大的内存开销。如何解决?...语法 val/var 变量名 = s"${变量/表达式}字符串" 在定义字符串之前添加s 在字符串中,可以使用${}来引用变量或者编写表达式 示例 若干个变量,分别保存:“zhangsan”、30、“...例如:保存一大段的SQL语句。三个引号中间的所有字符串都将作为字符串的值。
保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。...Scala 程序里,语句末尾的分号通常是可选的。如果你愿意可以输入一个,但若一行里仅 有一个语句也可不写。另一方面,如果一行里写多个语句那么分号是需要的。...包 定义包 Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式: 第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。...var c='A'; println(c+0) } } 字符串字面量 在 Scala 字符串字面量使用双引号 " 来定义,如下: package day1 object demo1 {...在字符或字符串中,反斜线和后面的字符序列不能构成一个合法的转义序列将会导致 编译错误。
二,输入输出 输出:println,print,printf 输入:scala.io.StdIn 写文件:java.io.PrintWriter 读文件:scala.io.Source 1,输出 ?...3,写文件 ? 4,读文件 ? ? ? ?...六,字符串String Scala的字符串是一种有序且不可变的基本数据类型,直接使用的Java中定义好的java.lang.String。 1,创建字符串 ? 2,字符串常用操作 ? ? ?...十四,选择结构 Scala的选择结构主要通过if语句以及match语句实现。 match 语句相当于多分支结构,可以使用模式匹配。 1,if语句 ? ? 2,match语句 ? ? ?...2,一切皆表达式 Scala中书写的每条语句都可以看成是一条表达式。 表达式的基本格式是 name:type = {...}
步骤如下: 1、新建一个 Maven 工程,在工程的 main 目录下新建一个 scala 文件夹,将该文件夹标记为【源码文件夹】,方便管理。...4、Scala 方法由一条条语句构成,每个语句后不需要分号(Scala 语言会在每行后自动加分号),这也体现出 Scala 的简洁性。 ...5、如果在同一行有多条语句,除了最后一条语句不需要分号,其它语句需要分号。...2、printf 用法(类似C语言)字符串通过 % 传值。 3、字符串通过 $ 引用(类似PHP)。...但是语句后面不需要加上分号。 简述:在配置环境、编译、运行各个步骤中常见的错误。
不以;作为语句结尾,scala编译器自动识别语句结尾。...等) 特别之处:scala用反引号包括的任意字符串,即使是 Scala 关键字(39 个)也可以。...,%后面为格式化的内容 原始输出:raw"输出内容${变量名}",输出的结果原样输出 输出语句: print(输出内容)、println()、 printf() 三引号表示字符串,保持多行字符串的原格式输出...} } 文件输入输出: import scala.io.Source import java.io.PrintWriter import java.io.File object Test05_FileIO...将数据写入文件 val writer = new PrintWriter(new File("src/main/resources/put.txt")) writer.write("hello
3.1 String 在Scala中,String更加方便好用: //原始字符串一对三引号"""括起来,可包含多行字符串,内容不需要转义 """Welcome here....= 'a') // "bcd" //字符串插值, 以s开头的字符串内部可以直接插入变量,方便字符串构造 val i = 100 s"i=${i}" // "i=100" Scala中没有受检异常(checked...在Scala中默认的集合类例如List,Set,Map,Tuple等都是不可变的,所以调用其修改方法会返回一个新的实例。...Future的独特之处在于它的值只能被写入一次,之后就会变为一个不可变值,其中包含成功或失败信息。...第1行import语句导入了一个隐式的ExecutionContext,你可以把它理解成是一个线程池,Future类在需要时会自动使用其上的线程。在Scala中你不需要直接和线程打交道。
语法格式 Java 变量定义 int a = 0; 在scala中,可以使用 val 或者 var 来定义变量,语法格式如下: val/var 变量标识:变量类型 = 初始值 其中 val定义的是不可重复赋值的变量...NOTE】 需要注意的是 scala中定义变量类型写在变量名后面 scala的语句最后不需要添加分号 ---- 在解释器中定义一个变量 示例: 定义一个变量保存一个人的名字 “tom” 步骤:...打开scala解释器 定义一个字符串类型的变量用来保存名字 参考代码: scala> val name:String = "tom" name: String = tom ---- val 和 var...---- 惰性赋值 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千 行。这些SQL语句,如果直接加载到JVM中,会有很大的内存开销。如何解决?...语法格式: lazy val/var 变量名 = 表达式 示例: 在程序中需要执行一条以下复杂的SQL语句,我们希望只有用到这个SQL语句才加载它。
上面的查询语句实际上是合法的 scala 语句,joern-cli 本身也是一个 scala 解释器。...Scala 101 前面说过,Joern 使用 Scala 编写,而且其查询语句也是 Scala 语句,因此为了熟悉 Joern 的查询,我们有必要先简单学习一下 Scala。...Scala 是一种基于 JVM 的语言,也就是说 .scala 源码可以像 Java 一样编译为 .class 文件,同时被 JVM 加载运行。...; 然后在 fieldWrite 匹配对应字段的写入,这里使用了 List.exists 判断列表 li 中是否包含列表 fields 中的元素; 最后使用 reachableByFlows 找到所有原...cpg.method("main").dotAst.head #> "/tmp/main.dot" 其中使用了自定义的操作符 #> 来将字符串重定向到文件中,也算是一个比较有用的小特性。
不建议在函数体内使用return语句,因为过多的return会使得代码逻辑混乱。...Scala默认使用函数体的最后一个表达式作为返回值。当然你仍然可以使用return语句指定返回值。...Scala的源文件中可以定义多个类,并且默认都是public,所以外界都可以看见。...object作为伴生对象时必须和类在同一个源文件中定义,并且可以相互访问私有属性。...中一切都是表达式,如果表达式含有多条语句,则使用大括号"{}"括起来,形成一个块表达式,块表达式的最后一条语句的值作为整个块的返回值。
---- 声明变量 我们将来每一天编写scala程序都会定义变量。那scala语言如何定义变量呢?...语法格式 Java变量定义 int a = 0; 在scala中,可以使用val或者var来定义变量,语法格式如下: val/var 变量标识:变量类型 = 初始值 其中 val定义的是不可重新赋值的变量...NOTE] scala中定义变量类型写在变量名后面 scala的语句最后不需要添加分号 在解释器中定义一个变量 示例:定义一个变量保存一个人的名字"tom" 步骤 打开scala解释器 定义一个字符串类型的变量用来保存名字...惰性赋值 在企业的大数据开发中,有时候会编写非常复杂的SQL语句,这些SQL语句可能有几百行甚至上千行。这些SQL语句,如果直接加载到JVM中,会有很大的内存开销。如何解决?...语法格式: lazy val/var 变量名 = 表达式 示例 在程序中需要执行一条以下复杂的SQL语句,我们希望只有用到这个SQL语句才加载它。
假设某个时刻拿到了一条数据A,这个A会立刻被map里的函数处理得到B(完成了转换),然后开始写入到HDFS(一条一条写入)上。其他数据重复如此。...写文件,需要buffer,最多数据量为 buffer* partitionNum(可以汇聚到Driver端写,也可以各个Executor直接写入到HDFS) 所以整个过程其实是流式(一般是一条一条或者一批一批...2.2 常用Action-API #指定分区的Transformation,包含3个分区,意味着以后在触发Action时会生成三个Task,Task将List中的数据进行处理并写入到HDFS文件中,最后将会有...同理分区2字符串长度最小值为0,聚合后的结果则为10或01。...foreach每写入一条都需要与MySQL建立一个JDBC连接,假设写入1000万条数据,就需要创建1000万个JDBC连接,资源消耗巨大。
_2.11.tgz 然后解压 a: /flink-1.11.1/conf 1、YARN_PER模式 文件下面放入hadoop客户端配置文件 core-site.xml yarn-site.xml hdfs-site.xml...mysql 版本5.6+以上 创建数据库 数据库名:flink_web 执行表语句 语句地址 https://github.com/zhp8341/flink-streaming-platform-web...mysqld 参考 demo2 双流kafka写入mysql 参考 demo3 kafka和mysql维表实时关联写入mysql 参考 demo4 滚动窗口 demo5 滑动窗口 创建函数 UTC2Local...无法从 JAR 文件构建程序。 使用帮助选项(-h 或 --help)获取有关命令的帮助。 ...:891) 在 scala.collection.AbstractIterator.foreach(Iterator.scala:1334) 在 scala.collection.IterableLike
为了避免每次打开 Spark 都要输入很长一串的路径,可以将 Spark 的 bin目录加入到系统路径中,例如我在 ~/.bashrc 文件中写入了 export PATH=$PATH:/home/qyx...另外,相信不少读者立刻就能看出这是 Java 风格的导入语句。事实上,Scala 正是基于 Java 而开发的,因此其语法也大多脱胎于 Java。 第6行是读取数据,并将结果赋值给一个变量 raw。...特别需要指出的是,这条语句实际上并没有开始读取文件,而只是建立了数据与程序之间的一种连接。这一点是与 R 中 read.table() 最大的不同。...之所以需要这么做,是因为 Spark 读取文本文件时把每一行当作了一个字符串,因此我们需要从这个字符串中解析出我们需要的数据来。...语句中被大括号包括的部分其实就是定义了这样一个变换函数,其输入是参数 line,代表传入函数的那个字符串,而输出是一个LabeledPoint 对象,它是 MLlib 中定义的一个数据结构,用来代表一个因变量
领取专属 10元无门槛券
手把手带您无忧上云