Scala
香山上的麻雀1008
大数据
展开
-
spark_user_behavior_demo
备注:此代码没有任何实际作用,仅作为初学者学习用package com.c.user_behaviorimport org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * 用户行为数据清洗 * 1、验证数据格式是否正确,切分后长度必须为17 * 2、手机号脱敏,格式为123xxxx4567 * 3、去掉username中带有的\n,否则导致写入HDFS时会换行 */ob.原创 2021-06-20 23:27:56 · 274 阅读 · 2 评论 -
scala 数组 传入 java可变参数列表的方法中
scala数组是用Array[String]来表示:def main(args: Array[String]): Unit = {}如果这个args传入java的参数列表 为String[] 的方法内 是可以正常转换的。但是如果传入java方法的参数列表为可变参数String...时就会报错,这时应该用:public static void test(String... args){...}在scala代码中调用上述java方法时,应该这样写:def main(args: Array[原创 2021-01-23 16:42:04 · 1203 阅读 · 1 评论 -
Scala如何实现break和continue
Scala中没有Java/C/C++中的break和continue这样的关键字来控制循环,而我们在写Scala/Spark的时候又经常需要用到这样的操作,那么该如何解决这个问题呢?其实通过Scala中的breakable()就可以解决,具体用法看如下例子。//注意:要使用breakable需先导入此包import scala.util.control.Breaks._; object B...原创 2020-03-12 15:05:03 · 712 阅读 · 0 评论 -
Scala 并发编程模型Akka(一) Akka简介
Akka是JVM平台上构建高并发、分布式和容错应用的工具包和运行时,也可以理解成是编写并发程序的框架。Akka用Scala语言写成,同时提供了Scala和JAVA的开发接口。Akka主要解决的问题是:可以轻松的写出高效稳定的并发程序,程序员不再过多的考虑线程、锁和资源竞争等细节。Actor 模型用于解决什么问题处理并发问题关键是要保证共享数据的一致性和正确性,因为程序是多线程时,多个线程对同一个数据进行修改,若不加同步条件,势必会造成数据污染。但是当我们对关键代码加入同步条件synchroni.原创 2020-10-17 15:08:34 · 743 阅读 · 0 评论 -
Scala Map 转 Json字符串
import org.json4s._import org.json4s.jackson.Serialization._import org.json4s.jackson.Serializationimplicit val formats = Serialization.formats(NoTypeHints) val m = Map( "name" -> "john doe", "age" -> 18, "hasChild" -> true, "childs"转载 2020-10-16 09:55:18 · 1767 阅读 · 0 评论 -
Scala面向对象编程之包及包对象
Scala面向对象编程之包及包对象基本介绍 和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些,下面我们学习Scala包的使用和注意事项。1.Scala包的特点概述基本语法 package 包名Scala包的三大作用(和Java一样)1) 区分相同名字的类2) 当类很多时,可以很好的管理类3) 控制访问范...原创 2019-03-07 16:32:50 · 1423 阅读 · 0 评论 -
Scala面向对象编程之静态成员、特质(Trait)及嵌套类
Scala面向对象编程(高级部分)1. 静态属性和静态方法(1)回顾Java中的静态概念public static 返回值类型 方法名(参数列表) {方法体}静态属性…说明: Java中静态方法并不是通过对象调用的,而是通过类对象调用的,所以静态操作并不是面向对象的。(2)Scala中静态的概念-伴生对象 ①Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作...原创 2019-03-04 21:07:20 · 1232 阅读 · 0 评论 -
Scala高级编程之偏函数
偏函数提出一个需求,引起思考给你一个集合val list = List(1, 2, 3, 4, “abc”) ,请完成如下要求:将集合list中的所有数字+1,并返回一个新的集合要求忽略掉 非数字 的元素,即返回的 新的集合 形式为 (2, 3, 4, 5)解决方式-filter + map返回新的集合, 引出偏函数解决方式-模式匹配object PartialFunDemo01...原创 2019-03-06 21:15:12 · 1332 阅读 · 0 评论 -
Scala语言值传递与名传递解析
Scala语言值传递与名传递解析package com.atguigu.scala.day02object ValueOrNameFunction { var money = 100 // 此函数的特点是 无参返回Int def buy(): Int = { println("buy....") money -= 10 money } // 传值...原创 2019-03-02 08:27:01 · 468 阅读 · 0 评论 -
Scala编程之自定义二叉树源码
Scala编程之二叉树package com.atguigu.scala.day02class Node { var value: Int = _ var left: Node = _ var right: Node = _}class Tree { var root: Node = _ def insertTree(node: Node, newNode: N...原创 2019-03-01 20:36:23 · 553 阅读 · 0 评论 -
Scala核心编程之隐式转换和隐式参数
隐式转换先看一段代码,引出隐式转换的实际需要=>指定某些数据类型的相互转化object Scala01 { def main(args: Array[String]): Unit = { val num1 : Int = 3.5 val num2 : Int = 4.6 println(num1) println(num2) }}结果:以上...原创 2019-03-05 13:18:13 · 453 阅读 · 0 评论
分享