数组: 定长数组: val s = Array("Hello", 1) //用()而不是[] println("s(0) -> " + s(0)) //输出s(0) -> Hello 变长数组: val...5) println(b.toArray) //输出[I@755d828f println(b.toArray.toBuffer) //输出ArrayBuffer(1, 2, 3, 4, 5) 遍历数组...-----------") for (i <- (0 until(10, 2)).reverse) print(i) //输出86420 println("\n----------------遍历数组...a.sorted.reverse) //输出:ArrayBuffer(324.0, 123.2, 123.0, 23.0, 12.0, 7.0, 4.0) val b = a.toArray scala.util.Sorting.quickSort...: val matrix1 = Array.ofDim[Int](3, 4) //二维数组 val matrix2 = Array.ofDim[Int](3, 4, 5) //三维数组
spark scala练习 准备一个文件上传至hdfs hello word hello java hello python hello c++ 启动spark-shell spark-shell...获取到要计算的文件 val file = spark.read.textFile("test.txt") 统计该文件的行数 file.count() 获取第一行的内容 file.first()
基本操作 创建RDD var data = Array(1,2,3,4) //数组 var distData = sc.parallelize(data,3) //创建RDD distData.collect...//收集展示 distData.take(1) //取出第一行/数组中一个数据占一行 2.读取文件数据 var distFile = sc.textFile("data.txt")//按行读 distFile.take...] = Array(12, 14, 16, 18) 5.flatmap是一个一对多的map var rdd4 = rdd3.flatMap(x=>x to 20) rdd4: org.apache.spark.rdd.RDD...[Int] = MapPartitionsRDD[6] at flatMap at :30 scala> rdd4.collect res6: Array[Int] = Array(...14, 15, 16, 17, 18, 19, 20, 14, 15, 16, 17, 18, 19, 20, 16, 17, 18, 19, 20, 18, 19, 20) 6.sample产生随机数组
数组声明 声明一个字符串类型的数组,数组长度为 3 ,可存储 3 个元素。...的索引标示是小括号而不是其他语言通用的中括号[] val a= new Array[String](3) a(0) = "abc" a(1) = "edf" a(2) = "qaz" println(a(1)) 数组的简写方式...val a = Array("1","2","3") println(a(1)) 数组的遍历 val list = Array("5","2","3","4") for(x <- list){ println...(x) } concat数组合并,concat() 方法来合并两个数组,concat() 方法中接受多个数组参数: import Array.concat var a = Array("1","2",...3") var b = Array("a","b","c") var c = concat(a,b) for(x <- c){ println(x) } range() 方法来生成一个区间范围内的数组
import scala.collection.mutable /** * @author CBeann * @create 2019-08-10 18:36 * 自定义分区器...extends Partitioner { val map = new mutable.HashMap[String, Int]() map.put("Java", 0) map.put("Scala...>2.1.1spark.version> scala.version>2.11.11scala.version> 2.7.3 org.scala-lang...scala-library ${scala.version}
Scala 是 Scalable Language 的简写,是一门多范式的编程语言。 ? Scala 是一门多范式的编程语言,类似于 Java 。...1).Java和scala可以无缝混编,都是运行在JVM上的 2).类型推测(自动推测类型),不用指定类型 3).并发和分布式(Actor,类似Java多线程Thread) 4).特质trait,...interfaces 和 abstract结合) 5).模式匹配,match case(类似java switch case) 6).高阶函数(函数的参数是函数,函数的返回是函数),可进行函数式编程 spark...底层就是用scala编写的,所以想要更好的使用spark了解一下scala语言还是有必要的,并且从java看过去,scala很好理解,因为有很多语法和关键字都是一样的。
一 : 定长数组 如果我们需要声明一个长度不变的数组,可以用scala中的Array,比如: val nums = new Array[Int](10) // 声明一个容量为10个整数的数组,所有元素的初始化为...// 声明一个长度为Array[String] -- 类型是推断出来的 , 如果在声明中已经提供了初始值就不需要new 在JVM中,Scala的Array是以Java数组方式实现,上述中的数组在JVM...:数组缓冲 对于变长数组,Java中有ArrayList Scala中的等效数据结构为ArrayBuffer import scala.collection.mutable.ArrayBuffer val...在下标2前插入任意多的元素 将数组缓冲转换为Array b.toArray 反之 将a.toBuffer 可以将一个数组转换为数组缓冲 b.toBuffer 三:遍历数组和数组缓冲 在scala 中处理数组的方式如下...在Scala中对数组进行转换时很简单的,这些转换不会修改原始数组,而是产生一个全新的数组 val a = Array(2,3,5,7,11) val Result = for(elem <- a )
) val arr= Array[Int](1,2,3,4,5) 查看不可变数组支持哪些api 打开终端,输入scala scala> val arr= Array[Int](1,2,3,4,5) arr...: Array[Int] = Array(1, 2, 3, 4, 5) scala> arr. ++ filterNot maxBy...再加一个 tab 键 scala> arr. 操作 主要讲解操作符,其他的函数太多了,也没那么多时间和精力一个个敲。...可变数组无法像不可变数组那样直接使用,需要进行先导包 import scala.collection.mutable.ArrayBuffer 可变数组创建: 通过new: new ArrayBuffer...> import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.ArrayBuffer 然后再运行 scala
壹 定长数组: 长度不变的数组Array,如:声明一个长度为10的整形数组,val arr = Array[Int](10);声明并初始化一个字符串数组: val arrStr = Array(“wo...访问数组方式:访问arrStr第一个元素,arrStr(1)即可 贰 变长数组(即数组缓冲): java中有ArrayList和scala中的ArrayBuffer等效;但是ArrayBuffer更加强大...Array val arrbuff2 = arr.toBuffer //将Array转换为数组缓冲 叁 遍历数组和数组缓冲: 在java中数组和数组列表/向量上语法有些不同。...陆 scala数组和java互操作: 由于scala数组是用java数组实现的,所以可以在java和scala之间来回传递,引入scala.collectin.JavaConversion ,可以在代码中使用...scala缓冲,在调用java方法时,这些对象会被自动包装成java列表。
object er extends App{ val st = Array[String]("A","B","C") // 数组反转 val r = st.reverse
---- 声明数组 以下是 Scala 数组声明的语法格式: var z:Array[String] = new Array[String](3) 或 var z = new Array[String]...$ scala Test 1.9 2.9 3.4 3.5 总和为 11.7 最大值为 3.5 ---- 多维数组 多维数组一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组。...$ scala Test 0 1 2 0 1 2 0 1 2 ---- 合并数组 以下实例中,我们使用 concat() 方法来合并两个数组,concat() 方法中接受多个数组参数: import...$ scala Test 1.9 2.9 3.4 3.5 8.9 7.9 0.4 1.5 ---- 创建区间数组 以下实例中,我们使用了 range() 方法来生成一个区间范围内的数组。...$ scala Test 10 12 14 16 18 10 11 12 13 14 15 16 17 18 19 ---- Scala 数组方法 下表中为 Scala 语言中处理数组的重要方法,使用它前我们需要使用
spark sql提供了更快的查询性能,如何能够更快的体验,开发和调试spark sql呢?...环境即可,而且能够在win上快速体验,不需要hive数据仓库,我们直接使用数组造点数据,然后转成DF,最后直接使用spark sql操作即可。...首先,看下pom文件的核心依赖: 然后看一个例子spark sql的测试例子: 至此,一个涵盖spark sql比较全的功能例子的小工程就完成了,上面的代码直接可在win上运行,而且里面的数据随时自己添加删除...,以便于可以测试spark sql与预期效果对比,上面的sql中还用到了分组里面的高级用法,分组后,收集组内数据,注意组内数据收集,如果是单个字段,直接用collect_list或者collect_set...spark sql结合scala编程语言之后可以变得非常灵活,sql不擅长的就用编程语言解决的,sql擅长的就用sql方便快速得到数据,用起来非常干净清爽!
Scala数组 1....定长数组 scala> val a = new Array[String](5) a: Array[String] = Array(null, null, null, null, null) scala...变长数组 scala> val d = scala.collection.mutable.ArrayBuffer[Int]() //定义一个变上数组 d: scala.collection.mutable.ArrayBuffer...scala> d.trimEnd(2) // 删除最后n个元素 scala> scala> for(ele数组-法1 | print(ele+" ") | } 4 5 6...7 scala> scala> for(i 数组-法2 | print(d(i)+" ") | } 4 5 6 7 scala> scala>
当我们学习spark的时候,我们知道spark是使用Scala语言开发的,由于语言是相通的,所以对于传统程序员【Java,.net,c等】,我们能看懂Scala程序是没有问题的。...看来如果想顺利的学习,我们必须学一下Scala了。很多都是从变量定义,函数,类等入门。由于我们可能有些其他语言基础,这里我们从Scala符号入门。一文能帮助大家阅读比较常见的Scala程序。...for (i <- 0 to 2) print(greetStrings(i)) 上面的含义是遍历一个数组 [Bash shell] 纯文本查看 复制代码 ?...单从函数的定义,我们就能看出Scala打破了传统的函数定义,除了函数定义,其它还有很多地方,都反映了Scala思想,没有以前Java,c等那么严格。...又如要对缓冲数组ArrayBuffer b排序,可以这样: val bSorted = b.sorted(_ 4、在元组中,可以用方法_1, _2, _3访问组员。如a._2。
Hadoop vs Spark Big Data Architecture https://www.youtube.com/watch?v=xDpvyu0w0C8
这种从 Ruby 到 Scala 的转变迅速传播开来,其他公司也开始效仿向 Scala 的转变。...斯卡拉: Scala 是面向对象和函数式编程的结合,是一种静态类型的高级语言。 Scala 大大减少了代码行,使代码简洁明了。 由于嵌套代码,Scala 的可读性较差。...Scala 不提供向后兼容性。 Scala 支持运算符重载。 Scala 支持惰性求值。 将源代码编译成字节码的方法比较慢。...程序员可以直接在 Scala 代码中调用 Java 函数。 然而,用 Java 代码编写 Scala 函数或用 Scala 代码编写 Java 函数并不那么简单。...Java vs Scala:选择哪一个? 简而言之,Scala 的函数式编程方法和精简代码与其陡峭的学习曲线和具有挑战性的代码相抵消。
集合 scala的集合体系结构 List LinkedList Set 集合的函数式编程 函数式编程综合案例:统计多个文本内的单词总数 scala的集合体系结构 scala中的集合体系主要包括:Iterable...循环将列表中的每个元素都乘以2 scala> val list = scala.collection.mutable.LinkedList(1,2,3,5,6) scala> var currentList...) scala> val s = Set(1,2,3) s: scala.collection.immutable.Set[Int] = Set(1, 2, 3) scala> s+1 res0: scala.collection.immutable.Set...[Int] = Set(1, 2, 3) scala> s+4 res1: scala.collection.immutable.Set[Int] = Set(1, 2, 3, 4) scala>...(1, 2, 5) scala> val s = scala.collection.mutable.SortedSet("orange","apple","banana") s: scala.collection.mutable.SortedSet
https://blog.csdn.net/boling_cavalry/article/details/87510822 Scala语言在函数式编程方面的优势适合Spark应用开发,IDEA...是我们常用的IDE工具,今天就来实战IDEA开发Scala版的Spark应用; 版本信息 以下是开发环境: 操作系统:win10; JDK:1.8.0_191; IntelliJ IDEA:2018.2.4...(Ultimate Edition) 以下是运行环境: Spark:2.3.3; Scala:2.11.12; Hadoop:2.7.7; 如果您想在几分钟之内搭建好Spark集群环境,请参考《docker...将下载好的文件解压,例如我这里解压后所在目录是:C:\software\spark-2.3.3-bin-hadoop2.7 IDEA安装scala插件 打开IDEA,选择"Configure"->“Plugins....map(x=>x*x) .filter(_>10) .collect() .foreach(println); } } 以上代码的功能很简单:创建用一个数组
初学者,记录学习spark的最基本东西,不忘记 在spark下启动scala: ..../bin/spark-shell 测试例子: sc.parallelize(1 to 1000).count() 在spark中启动python: .
catch{ case_:lllegAlrgumentException => print("sorry,error") }finally{ print("release io ") } 数组操作之...Array、ArrayBuffer以及遍历数组 val a = new ArrayInt a(0) = 1给元素赋值 val a = Array("hello","world") import scala.collection.mutable.ArrayBuffer...[Int] = ArrayBuffer(1, 2, 3, 4, 5, -1) 第二种,性能更高,数组更少移动 var foundFirstNegative = false val keepIndexes...[String,Int] = Map() scala> aggs("leo")=30 scala> aggs("jike")=40 scala> aggs("alice")=15 scala> aggs...= leo scala> t._2 res24: Int = 30 //zip操作,将两数组拼接成元组 scala> val names = Array("leo","jack","mike")
领取专属 10元无门槛券
手把手带您无忧上云