scala

scala中的self =>

耗尽温柔 提交于 2020-12-10 11:34:44
在scala的一些开源项目的源码中总是能看到类似self =>关键字,那这到底代表什么呢?在此,记录一下,仅作为笔记 this 别名 这种相当于给this起了一个别名self,这里的self可以换成其他的你自己喜欢的字符串,看一下spark的源码sparkSession的定义: class SparkSession private( @transient val sparkContext: SparkContext, @transient private val existingSharedState: Option[SharedState], @transient private val parentSessionState: Option[SessionState], @transient private[sql] val extensions: SparkSessionExtensions) extends Serializable with Closeable with Logging { self => ... @Unstable @transient lazy val sessionState: SessionState = { parentSessionState .map(_.clone(this)) .getOrElse { val state =

What is the correct way to implement trait with generics in Scala?

天大地大妈咪最大 提交于 2020-12-09 02:23:41
问题 I have some simple traits (Entity in the example below) that are extended by case classes in my app. I would like to create an EntityMapper trait that provides an interface for handling the case classes that extend the Entity trait (Foo in the example below). I thought I should be able to do this fairly easily using generics and bounding but I've spent a couple of hours on it already and I haven't gotten it to work correctly. The code below is what I think I should be able to do but it fails

#Windows通过IDEA编写程序自动加手动上传到docker搭建的spark集群上运行加简单的RDD编程!!!!

本秂侑毒 提交于 2020-12-08 14:07:04
参考大佬文章 https://blog.csdn.net/weixin_43622131/article/details/110565692 https://blog.csdn.net/weixin_43622131/article/details/110621405 说在前面 以下实验过程都是在使用docker搭建好spark集群的前提条件下进行,如果你的spark集群还没有搭建成功,可以参考我的上一篇博客 https://blog.csdn.net/weixin_45548774/article/details/110206515 下面是正式的实验内容 启动spark集群 1本机启动集群do 直接运行 spark-shell 或者进入spark安装目录,打开spark-shell 2通过yarn启动spark集群 使用命令 spark-shell --master yarn 或者 spark-shell --master yarn-client 这期间可能会遇到如下问题: 1 Name node is in safe mode. 这是因为在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性

How to reference the name of a val in a Object class in scaladoc?

时光毁灭记忆、已成空白 提交于 2020-12-08 06:01:11
问题 Is there a way that I can reference the name of a val in a Object class using scaladoc, similar to {@value #STATIC_FIELD} in javadoc. 回答1: you can do it two ways: package your.package_path object SomeObject extends App { val someList: List[Int] = List.empty[Int] /** * @see [[your.package_path.SomeObject#someList]] * @see [[someList]] * ... */ def bar(): String = ??? } 来源: https://stackoverflow.com/questions/29854895/how-to-reference-the-name-of-a-val-in-a-object-class-in-scaladoc

What is the difference between Expressions and Statements in Scala

ぐ巨炮叔叔 提交于 2020-12-08 05:39:04
问题 I'm new in Scala world and want to know what is the difference between Expressions and Statements and Why if-else is used for expression, not statements. And if there is a way to use statement in if-else? 回答1: EDIT : As pointed out by @Jörg W Mittag in the comments, this answer is in fact wrong: statements do exist in the Scala spec: Statements occur as parts of blocks and templates. A statement can be an import, a definition or an expression, or it can be empty. I leave the original answer,

How Can I Share Code Between Integration Tests and Unit Tests

試著忘記壹切 提交于 2020-12-08 04:47:08
问题 For my tests I have created an object which holds all my Arbitrary instances of case classes (ie my generators): object Generators extends FooGen { def sample[A](implicit gen: Gen[A]): A = gen.sample.getOrElse(sys.error(s"Could not generate instance with $gen")) implicit def arb[A](implicit g: Gen[A]): Arbitrary[A] = Arbitrary(g) } trait FooGen { this: GenUtils => implicit val fooGen: Gen[Foo] = gen[Foo] } This currently sits under my /test folder as I need it to generate arbitrary instances

好好说说Java中的常量池之Class常量池

家住魔仙堡 提交于 2020-12-06 19:13:52
好好说说Java中的常量池之Class常量池 在Java中,常量池的概念想必很多人都听说过。这也是面试中比较常考的题目之一。在Java有关的面试题中,一般习惯通过String的有关问题来考察面试者对于常量池的知识的理解,几道简单的String面试题难倒了无数的开发者。所以说,常量池是Java体系中一个非常重要的概念。 谈到常量池,在Java体系中,共用三种常量池。分别是字符串常量池、Class常量池和运行时常量池。 本文是《好好说说Java中的常量池》系列的第一篇,先来介绍一下到底什么是Class常量池。 什么是Class文件 在Java代码的编译与反编译那些事儿中我们介绍过Java的编译和反编译的概念。我们知道,计算机只认识0和1,所以程序员写的代码都需要经过编译成0和1构成的二进制格式才能够让计算机运行。 我们在深入分析Java的编译原理中提到过,为了让Java语言具有良好的跨平台能力,Java独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode)。 有了字节码,无论是哪种平台(如Windows、Linux等),只要安装了虚拟机,都可以直接运行字节码。 同样,有了字节码,也解除了Java虚拟机和Java语言之间的耦合。这话可能很多人不理解,Java虚拟机不就是运行Java语言的么?这种解耦指的是什么? 其实

Select case class based on String in Scala

时光总嘲笑我的痴心妄想 提交于 2020-12-06 13:26:40
问题 How can I select a case class based on a String value? My code is val spark = SparkSession.builder()... val rddOfJsonStrings: RDD[String] = // some json strings as RDD val classSelector: String = ??? // could be "Foo" or "Bar", or any other String value case class Foo(foo: String) case class Bar(bar: String) if (classSelector == "Foo") { val df: DataFrame = spark.read.json(rddOfJsonStrings) df.as[Foo] } else if (classSelector == "Bar") { val df: DataFrame = spark.read.json(rddOfJsonStrings)

Select case class based on String in Scala

佐手、 提交于 2020-12-06 13:23:34
问题 How can I select a case class based on a String value? My code is val spark = SparkSession.builder()... val rddOfJsonStrings: RDD[String] = // some json strings as RDD val classSelector: String = ??? // could be "Foo" or "Bar", or any other String value case class Foo(foo: String) case class Bar(bar: String) if (classSelector == "Foo") { val df: DataFrame = spark.read.json(rddOfJsonStrings) df.as[Foo] } else if (classSelector == "Bar") { val df: DataFrame = spark.read.json(rddOfJsonStrings)

记一次西安thoughtworks的面试经历

笑着哭i 提交于 2020-12-06 09:56:48
好久没有更新简历了,于是更新了下个人简历,算是自我总结吧,这也是多年来养成的一种习惯,定期维护更新。简历更新后,很快就接到了很多电话(虽然简历设置了不对外公开),目前我还没有换工作的打算,除非有非常合适的机会,哈哈!所以90%的面试机会我还是不由分说的拒绝了。 某天接到了一位猎头的电话,被告知是thoughtworks的岗位,问及是否有兴趣考虑。对这家公司之前还是有些了解的,以技术、咨询为驱动,敏捷开发而闻名,于是相互加了微信,了解一下总归没有坏处。于是,就有了接下来的经历,在此与大家分享一下,记录如下。(Homework、Pair Program、Face-to-face Interviews真的是非常棒的面试指导,值得仔细阅读) 1、猎头初聊 猎头加了微信后,发来了thoughtworks介绍及岗位JD,我主要看了下岗位JD,岗位还是偏于技术为导向的,相对吻合,就答应可以考虑,先看看。 随后,猎头与我约定时间进行了电话沟通,沟通的主要内容: thoughtworks公司介绍 岗位JD介绍 个人情况了解 电话聊了将近一个小时,首先进行了简单的自我介绍,近期工作内容、所用技术栈、团队人员组成情况、平时遇到问题是如何解决的、自己的未来职业规划等等这些问题,反正关于个人情况问的特别细,不输于一场技术面试。 接下来,就是猎头介绍了岗位JD情况、TW情况、以及TW面试流程的特殊性等。