语法


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 应用相关推荐

  1. Scala篇—implicit隐式入门

    Scala篇-implicit隐式入门 一.implicit概述 1.简介 2.为什么需要implicit 3.隐式转换机制 4.隐式转换规则 5.使用implicit须知 二.Demo示例 1.隐式 ...

  2. 命令行中只用scala来运行一个spark应用

    由于intellij十分消耗内存, 并且在概念上来讲,scala导入jar包应该和在集成开发环境中导入jar包是等效的. 所以我想,能否纯命令行,不用spark-submit的情况下来运行呢? 折腾了 ...

  3. 编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层

    编写Scala代码,使用Spark讲Mysql数据表中的数据抽取到Hive的ODS层 抽取MySQL的metast库中Production表的全量数据进入Hive的ods库中表production,字 ...

  4. Scala之Implicit的用法

     Scala在面对编译出现类型错误时,提供了一个由编译器自我修复的机制,编译器试图去寻找一个隐式implicit的转换方法,转换出正确的类型,完成编译.这就是implicit 的意义. 一. 隐式转换 ...

  5. Scala之——Implicit 详解

    在我看来,Implicit 做的事情也是 Scala 主要做的事情,那就是代码压缩,减少模块代码,talk is cheap,先用一个实例来了解一下 Implicit 的作用. 一个栗子 马上就到情人 ...

  6. Scala的implicit

    1. 隐式转换函数 我们在scala repl里定义一个方法foo,接受一个string的参数,打印出message. 当我们传入字符串参数"2"的时候,输出2. 但是当传入的类型 ...

  7. Scala基于Akka模拟Spark Master Worker进程间通信(二):Worker定时向Master心跳

    最终效果 Master package cn.zxl.spark.masterimport akka.actor.{Actor, ActorRef, ActorSystem, Props} impor ...

  8. Scala基于Akka模拟Spark Master Worker进程间通信(一):Worker向Master注册

    最终效果 master: worker: 思路分析 Master代码 package cn.zxl.spark.masterimport akka.actor.{Actor, ActorRef, Ac ...

  9. 获取系统URL访问的前三名(通过Scala方式实现/通过Spark方式实现),Spark将URL访问日志进行分类并通过自定义Partitioner的方式将文件写入到不同分区上

    1.创建Maven项目 创建的过程参考:http://blog.csdn.net/tototuzuoquan/article/details/74571374 2.准备日志文件 url.log的内容类 ...

最新文章

  1. jquery 获取一组元素的选中项 - 函数、jquery获取复选框值、jquery获取单选按钮值...
  2. Linux命令——expr
  3. 质数c语言欧拉筛选,Python|欧拉筛法求质数
  4. 关联数组(associative array)
  5. JEECG社区 一个微信教育网站案例源码分享
  6. [Python学习] Django 权限控制
  7. 学python能做什么-学Python后到底能干什么?网友:我太难了
  8. 功能和界面哪个更重要
  9. LTE调制方式和编码速率
  10. JavaWeb综合案例——商品后台管理系统
  11. 谁在崛起,谁在没落?新一线城市竞争力盘点,用Python绘制动态图带你看懂!
  12. python数据类型与数据结构--内置数据类型
  13. 建筑识图与构造【1】
  14. 2022“杭电杯”中国大学生算法设计超级联赛(1)C.Backpack
  15. 【通知】关于SRRC认证无线电发射设备型号核准的通知
  16. 锐龙r9 6900hx和锐龙r7 6800h差距 r96900hx和r76800h选哪个好
  17. fireworks 制作html,如何在 Fireworks 8中创建HTML切片
  18. 简易压力容器CE认证指令2014/29 / EU取代87/404 / EEC
  19. SRPG游戏开发(四十一)第九章 战斗系统 - 三 战斗动画(Combat Animation)
  20. “投我以木桃,报之以琼瑶”的真正含义

热门文章

  1. QT自制TCP客户端
  2. 理解ip addr命令下面各个子项目eth0的意思
  3. 【AI简报第20230210期】 ChatGPT爆火背后、为AIoT和边缘侧AI喂算力的RISC-V
  4. Resilio Sync和Syncthing———两个P2P同步软件的评测
  5. Vagrant与VirtualBox踩坑记录
  6. 运行Linux脚本时候出现Error: Could not find or load main class和No such file or directory错误信息
  7. Java之强制类型转换
  8. @MyBatis注解实现动态模糊查询
  9. History.pushState()更改网页网址
  10. MySQL之MVVC简介