1. Eclipse中设置scala调试器

scala的调试器要选择Scala Application(new debuger)Launcher;开始选择图省事,选择了一个字母少的,亲切的Launcher:Scala JVM Launcher;但是后来发现这个Launcher只能运行,但是无法在调试过程中获取变量值。

2. java和scala交互

有的时候需要clean后再编译,scala才能够读取到java的变化,反之亦然;

3. 关闭Eclipse的自动变异

Scala的编译很慢,和纯java时代不同,想要高效开发,就要关闭掉自动编译功能;否则你将会一半时间耗费在Eclipse的自动编译中,不能自拔;

4. 设置全局变量默认值

对于全局变量,必须要初始化,如果是需要后面调用来进行初始化,那么需要var XX = _这样的写法来进行赋默认值,其实即使XX类没有无参构造函数,也是可以的。

5. Java Scala集合对象无缝转化

Java类和Scala集合对象之间的无缝转换,因为Scala里面的集合类是强集合类,里面有map等操作;当使用java的时候是无缝使用这些方法的;同样对于HashMap,Java有put操作,为了两者之间的这种操作合集,需要使用导入scala.collection.JavaConversion._

6. Seq

scala的Seq可以通过:+进行添加元素,但是注意这个模式是会返回一个新的对象,需要让一个变量来接这个返回值

7. Scala中的三元判断

scala里面不需要三元判断a?b:c,因为在java里面,if-else只是控制结构,没有返回值;但是在scala里面if-else只是表达式可以有返回值的。所以用if-else来完成之前java里面的三元关系。

8. null,option,some

Scala中鼓励不要是用null,而是Option类;Option类里面可以作为类型定义,返回值如果有值将会是Some,空将会返回None;Option其实是一个容器,一个只能放一个值的容器(篮子),可以对于返回值进行遍历,发现没有值就返回None,如果有值则返回Some;

9. spark和spring的netty冲突

发现引入springboot后,spark2.1.10跑步起来了,netty错误;关键字:springboot spark AbstractMethodError,果然后搜到,原来springboot2.x默认使用netty4.1.x,但是spark2.1.x则是使用netty4.0.43.final,netty不兼容导致;只需要在pom中显式声明netty4.0.43的依赖,问题解决。

10. 泛型类化

RDD转化为Vector失败,因为RDD是一个数据容器,所以当然失败,要使用rdd.first().asInstance[SV]的方式。注意在Scala中对于泛型的支持和java不一样,Java中是隐式转换,但是在scala中需要通过asInstance[Type]来进行转换;

11. Task can't serials

老生常谈问题;这个是因为我在map体重包含了一个本地的方法,后来把这个方法放在map外面调用,问题解决。

Scala实战的更多相关文章

  1. Scala实战高手****第17课:Scala并发编程实战及Spark源码阅读

    package com.wanji.scala.test import javax.swing.text.AbstractDocument.Content import scala.actors.Ac ...

  2. Scala实战高手****第8课:零基础实战Scala最常用数据结构Map和Tuple及Spark源码鉴赏

    本课内容1.Map和Tuple在Spark源码中的鉴赏2.Map和Tuple代码操作实战 ------------------------------------------------------- ...

  3. Scala实战高手****第6课 :零基础实战Scala集合操作及Spark源码解析

    本课内容1.Spark中Scala集合操作鉴赏2.Scala集合操作实战 --------------------------------------------------------------- ...

  4. Scala实战高手****第16课:Scala implicits编程彻底实战及Spark源码鉴赏

    隐式转换:当某个类没有具体的方法时,可以在该类的伴生对象或上下文中查找是否存在隐式转换,将其转换为可以调用该方法的类,通过代码简单的描述下 一:隐式转换 1.定义类Man class Man(val ...

  5. Scala实战高手****第15课:Scala类型参数编程实战及Spark源码鉴赏

    1.Scala的类和方法.函数都可以是泛型 2.上界:表示泛型的类型必须是某种类型或者其类型的子类,语法:<: ,对类型进行限定 3.下界:表示泛型的类型必须是某种类型或者其类型的父类,语法:& ...

  6. Scala实战高手****第14课:Scala集合上的函数式编程实战及Spark源码鉴赏

    package com.dt.spark.scala.bascis object Functional_Itearal {   def main(args: Array[String]): Unit ...

  7. Scala实战高手****第13课:Scala模式匹配实战和Spark源码鉴赏

    package com.dt.spark.scala.bascis class Dataframework case class Computerframework (name:String,popu ...

  8. Scala实战高手****第12课:Scala函数式编程进阶(匿名函数、高阶函数、函数类型推断、Currying)与Spark源码鉴赏

    /** * 函数式编程进阶: * 1.函数和变量一样作为Scala语言的一等公民,函数可以直接赋值给变量 * 2.函数更常用的方式是匿名函数,定义的时候只需要说明输入参数的类型和函数体即可,不需要名称 ...

  9. Scala实战高手****第11课:Scala面向接口彻底实战和Spark源码鉴赏

    第一点: scala的接口trait中所有方法可以都被实现!! 这种情况一般会是一种工具方法的集合,例如接口 Logging! scala 多种继承用extends ... with  .... 在老 ...

随机推荐

  1. <Hadoop重装><centos><NameNode失效>

    Overview 记一次真真切切的NameNode单点故障. 学校机房着火之后,刀片机上的四台服务器,唯独就NameNode彻底宕掉了,去机房看了下硬盘都坏了.. 所以只能换一个master咯.基本上 ...

  2. <Spark><Programming><Key/Value Pairs><RDD>

    Working with key/value Pairs Motivation Pair RDDs are a useful building block in many programs, as t ...

  3. wx小程序修改swiper 点的样式

    <swiper class="swiper-box" indicator-dots="{{ indicatordots }}" autoplay=&quo ...

  4. 推荐系统-05-Spark电影推荐、评估与部署

    一.新建scala项目 二.构造程序 代码如下 package xyz.pl8 import java.io.File import org.apache.log4j.{Level, Logger} ...

  5. JavaScript条件语句-5--if语句的嵌套

    JavaScript条件语句 学习目标 1.掌握length属性的应用 2.掌握if语句的嵌套 length 语法:string.length 功能:获取string字符串的长度 返回值:number ...

  6. 直接复制浏览器Request headers中的进行copyheaders进行转换

    先导入函数库 from copyheaders import headers_raw_to_dict 然后复制请求头 headers = b'''accept: application/json, t ...

  7. [LeetCode&Python] Problem 746. Min Cost Climbing Stairs

    On a staircase, the i-th step has some non-negative cost cost[i] assigned (0 indexed). Once you pay ...

  8. [LeetCode&Python] Problem 784. Letter Case Permutation

    Given a string S, we can transform every letter individually to be lowercase or uppercase to create ...

  9. [Data Structure] An Algorithm for Matching Delimiters

    An important task when processing arithmetic expressions is to mach delimiters. We can use Stack to ...

  10. go服务运行框架go-svc

    go-svc:https://github.com/judwhite/go-svc/svc go-svc支持linux和windows,应用只需实现Service接口即可. 官方例子 package ...