scala implicit - implicit parameters spark 应用
语法
class PreferredPrompt(val preference: String)object Greeter {def greet(name:String)(implicit prompt: PreferredPrompt) {println("Welcome, " + name + ". Thee systeme is ready.") println(prompt.preference)}
}implicit val prompt = new PreferredPrompt("Yes, master> ")Greeter.greet("Joe")
应用
RequestContext 传递
java编程中有使用ThreadLocal来保存当前请求,避免每个方法都带上context;
scala通过implict,减少boilerplate code
abstract class RequestHandler {def process(context:RequstContext)
}//main handler class
def dispatch(request:Request) {implicit val context = makeContext(request)handler1.processhandler2.processhandler3.process}
SparkSession
spark session 对象贯穿整个job/application,通过implicit 减少每个方法调用时显示传入
def sql2df(sql:String, view:Option[String] = None, isCache:Boolean = true)(implicit spark:SparkSession):DataFrame = {println(sql)val df = spark.sql(sql)if(isCache)df.cache()if(view.isDefined)df.createOrReplaceTempView(view.get)df}
scala implicit - implicit parameters spark 应用相关推荐
- Scala篇—implicit隐式入门
Scala篇-implicit隐式入门 一.implicit概述 1.简介 2.为什么需要implicit 3.隐式转换机制 4.隐式转换规则 5.使用implicit须知 二.Demo示例 1.隐式 ...
- 命令行中只用scala来运行一个spark应用
由于intellij十分消耗内存, 并且在概念上来讲,scala导入jar包应该和在集成开发环境中导入jar包是等效的. 所以我想,能否纯命令行,不用spark-submit的情况下来运行呢? 折腾了 ...
- 编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层
编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层 抽取MySQL的metast库中Production表的全量数据进入Hive的ods库中表production,字 ...
- Scala之Implicit的用法
Scala在面对编译出现类型错误时,提供了一个由编译器自我修复的机制,编译器试图去寻找一个隐式implicit的转换方法,转换出正确的类型,完成编译.这就是implicit 的意义. 一. 隐式转换 ...
- Scala之——Implicit 详解
在我看来,Implicit 做的事情也是 Scala 主要做的事情,那就是代码压缩,减少模块代码,talk is cheap,先用一个实例来了解一下 Implicit 的作用. 一个栗子 马上就到情人 ...
- Scala的implicit
1. 隐式转换函数 我们在scala repl里定义一个方法foo,接受一个string的参数,打印出message. 当我们传入字符串参数"2"的时候,输出2. 但是当传入的类型 ...
- Scala基于Akka模拟Spark Master Worker进程间通信(二):Worker定时向Master心跳
最终效果 Master package cn.zxl.spark.masterimport akka.actor.{Actor, ActorRef, ActorSystem, Props} impor ...
- Scala基于Akka模拟Spark Master Worker进程间通信(一):Worker向Master注册
最终效果 master: worker: 思路分析 Master代码 package cn.zxl.spark.masterimport akka.actor.{Actor, ActorRef, Ac ...
- 获取系统URL访问的前三名(通过Scala方式实现/通过Spark方式实现),Spark将URL访问日志进行分类并通过自定义Partitioner的方式将文件写入到不同分区上
1.创建Maven项目 创建的过程参考:http://blog.csdn.net/tototuzuoquan/article/details/74571374 2.准备日志文件 url.log的内容类 ...
最新文章
- jquery 获取一组元素的选中项 - 函数、jquery获取复选框值、jquery获取单选按钮值...
- Linux命令——expr
- 质数c语言欧拉筛选,Python|欧拉筛法求质数
- 关联数组(associative array)
- JEECG社区 一个微信教育网站案例源码分享
- [Python学习] Django 权限控制
- 学python能做什么-学Python后到底能干什么?网友:我太难了
- 功能和界面哪个更重要
- LTE调制方式和编码速率
- JavaWeb综合案例——商品后台管理系统
- 谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!
- python数据类型与数据结构--内置数据类型
- 建筑识图与构造【1】
- 2022“杭电杯”中国大学生算法设计超级联赛(1)C.Backpack
- 【通知】关于SRRC认证无线电发射设备型号核准的通知
- 锐龙r9 6900hx和锐龙r7 6800h差距 r96900hx和r76800h选哪个好
- fireworks 制作html,如何在 Fireworks 8中创建HTML切片
- 简易压力容器CE认证指令2014/29 / EU取代87/404 / EEC
- SRPG游戏开发(四十一)第九章 战斗系统 - 三 战斗动画(Combat Animation)
- “投我以木桃,报之以琼瑶”的真正含义
热门文章
- QT自制TCP客户端
- 理解ip addr命令下面各个子项目eth0的意思
- 【AI简报第20230210期】 ChatGPT爆火背后、为AIoT和边缘侧AI喂算力的RISC-V
- Resilio Sync和Syncthing———两个P2P同步软件的评测
- Vagrant与VirtualBox踩坑记录
- 运行Linux脚本时候出现Error: Could not find or load main class和No such file or directory错误信息
- Java之强制类型转换
- @MyBatis注解实现动态模糊查询
- History.pushState()更改网页网址
- MySQL之MVVC简介