
语言-scala
九师兄
可免费问问题,可以一次订阅,终身免费问问题。工作多年遇到的问题,与一些总结,注意事项等,有些是源码级别的讲解,同时整个博客是成体系的,里面有很多连接互相连接,问题都是拆开的,能让大家遇到问题的时候方便的解决问题,或者提供思路。也可以单独找我解决问题。
展开
-
【Scala】Scala Java Error: value filter is not a member of *
1.概述有时在Scala中调用Java的库,Java库会返回某些Java的集合或类型,必须经过一些转换才能正常使用。否则有可能在编译的过程遇到这个错误。错误字符串下面是错误的主要信息。Scala Java Error: value filter is not a member of *2.解决办法在代码中引入下面名字空间,引用Java和Scala的各种集合和类型之间的隐式转换。import collection.JavaConversions._但是我的加了这句话,然后有时候代码是正常原创 2020-09-20 16:45:55 · 1557 阅读 · 0 评论 -
【Scala】scala ':' or newline expected \u200b
1. 背景拷贝了网上一段代码,发现报错如下这个是因为不可见字符,引起的,全局替换一下就好了。参考:【IDEA】IDEA报错 illegal character U+00A0异常解决原创 2020-05-14 09:18:07 · 1634 阅读 · 5 评论 -
Scala : unsupported operationexception : empty.reduceLeft
1.美图2.背景写了一段程度val loader = (arr:JSONArray,name:String) =>{ xxx }.reduce((x,y) => { x ++ y })经查是左边xxx其没有结果导致的,修改xxx使其有结果...原创 2020-07-04 10:31:24 · 2028 阅读 · 0 评论 -
Scala报错:error: overloaded method value logInfo with alternatives
1.背景写了这么一段代码object JdbcSink extends Logging { def writeToJdbc(df:DataFrame, sink: StreamSink, driverName: String):DataStreamWriter[Row] ={ logInfo("JDBC URL:{} NAME:{} ",url,connectorParam.get...原创 2019-11-19 10:57:04 · 6567 阅读 · 0 评论 -
Scala入门到精通——第四节 Set、Map、Tuple、队列操作实战
本节主要内容 mutable、immutable集合 Set操作实战 Map操作实战 Tuple操作实战 队列操作实战 栈操作实战 mutable、immutable集合 以下内容来源于scala官方文档: http://www.scala-lang.org/docu/files/collections-api/collections.htmlScala collect...转载 2018-04-11 16:16:27 · 603 阅读 · 0 评论 -
Scala入门到精通——第三节 Array、List
本节主要内容 数组操作实战 列表List操作实战 数组操作实战 1 定长数组//定义一个长度为10的数值数组scala> val numberArray=new Array[Int](10)numberArray: Array[Int] = Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0)//定义一个长度为10的String类型数组scala>...转载 2018-04-11 16:14:41 · 648 阅读 · 0 评论 -
Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构
Scala入门到精通—— 第二节Scala基本类型及操作、程序控制结构摘要: 本节主要内容 Scala基本类型 基本类型操作 Scala程序控制结构 Scala基本类型 Scala中的基本数据类型如下图: (来源:Programming in Scala) 从上表中可以看出,Scala的基本数据类型与Java中的基本数据类型是一一对应的,不同的是Scala的基本数据类型头字母必须大写,本节以I...转载 2018-04-11 16:08:47 · 752 阅读 · 0 评论 -
Scala入门到精通——第一节 Scala语言初步
本节主要内容 Scala简介 为什么要学习Scala Scala语言初步 1. Scala简介 Scala(Scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程,它由由Martin Odersk于2001开发,2004年开始程序运行在JVM与.Net平台之上,由于其简洁、优雅、类型安全的编程模式而受到...转载 2018-04-11 13:59:58 · 790 阅读 · 0 评论 -
Scala入门到精通——第五节 函数与闭包
本节主要内容 (一)函数字面量(值函数)(二)匿名函数(三)函数的简化(四)函数参数(四)闭包函数字面量(值函数) 函数字面量(function literal),也称值函数(function values),指的是函数可以赋值给变量。一般函数具有如下形式: 而函数字面量具有如下形式:/* 函数字面量 function literal =&g...原创 2018-04-11 16:47:05 · 645 阅读 · 0 评论 -
ambiguous reference to overloaded definition(scala与java重载逻辑不匹配)
1.问题Error:(108, 47) ambiguous reference to overloaded definition,both method toJSONString in object JSON of type (x$1: Any, x$2: com.alibaba.fastjson.serializer.SerializerFeature*)Stringand metho...原创 2018-07-20 15:41:03 · 7720 阅读 · 4 评论 -
NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; at akka.actor.setup.ActorSystemSetup$.$anonfun$apply$1(ActorSystemSetup.scala:39...原创 2018-10-18 18:02:40 · 4191 阅读 · 0 评论 -
Java 的 List 与 Scala 的 Seq 相互转换
List 转 Seq:List<String> tmpList = new ArrayList<>();tmpList.add("abc");Seq<String> tmpSeq = JavaConverters.asScalaIteratorConverter(tmpList.iterator()).asScala().toSeq(); S...转载 2019-03-13 19:16:05 · 5984 阅读 · 1 评论 -
Scala与Java混编译:java日志不打印的问题
1.背景原创 2019-09-04 20:11:17 · 1130 阅读 · 0 评论 -
scala学习-Description Resource Path Location Type value toDF is not a member of org.apache.spark.rdd.R
编译如下代码时,出现value toDF is not a member of org.apache.Spark.rdd.RDD[People] 错误val rdd : RDD[People]= sparkSession.sparkContext.textFile(hdfsFile,2).map(line => line.split(“,”)).map(arr => People(arr(0),a原创 2017-08-16 11:11:05 · 2856 阅读 · 0 评论 -
scala:Scala class的构造方法与继承
有java背景的人,很清楚java是如何定义构造方法以及继承的。在scala里面,继承和java有些相似。但是构造方法的定义,就不大一样了,应该说是差别还是很大的。在java里面,定义构造方法,就是定义一个没有返回值类型的与类同名的方法。如下:package com.shihuc;public class Person { private String lastName; //姓原创 2017-08-10 11:18:18 · 1707 阅读 · 1 评论 -
scala学习-scala中的特殊符号使用
1。=> 使用 目前知道的基本和匿名函数定义和函数类型声明有关,以及在case语句中的使用1、 匿名函数定义, 左边是参数 右边是函数实现体 (x: Int)=>{} 2、函数类型的声明,左边是参数类型,右边是方法返回值类型 (Int)=>(Int) 3、By-name-parameter f(p :=>Int) 与2的区别原创 2017-08-10 13:04:34 · 1859 阅读 · 0 评论 -
scala学习-Linux命令行运行jar包传入main方法参数
1。eclipse写了一个程序,直接打包成jav普通jar包,然后无法选择主类,但是运行的时候,可以指定参数,(参数在程序里用 args(i)引用,注意是括号) 2。运行的时候,参数跟在jar包后面,用空格分开 如下格式格式:$SPARK_HOME/bin/spark-submit --name "lcc_sparkSql_submit" --master yarn --executor-mem原创 2017-08-18 11:42:06 · 7901 阅读 · 0 评论 -
scala学习-scala通过mkString方法把一个集合转化为一个字符串
Problem 如果你想要把集合元素转化为字符串,可能还会添加分隔符,前缀,后缀。 Solution 使用mkString方法来打印一个集合内容,下面给一个简单的例子:scala> val a = Array("apple", "banana", "cherry")a: Array[String] = Array(apple, banana, cherry)scala> a原创 2017-08-18 11:44:33 · 9042 阅读 · 1 评论 -
scala学习-scala中的元组Tuple概念
1。Tuple的英文意思是元组的意思 2。场景:当在一个方法中, 你需要返回几个对象,这几个对象的类型一致,你可以返回一个数组;如果几个对象的类型不同呢,当然你可以返回一个Object[]数组,可是这样在使用结果数组的时候,就需要强转对象的类型,会导致类型不安全;也可以定义一个dto,当多个场景下需要使用的不同,需要定义多个dto,这样会类爆炸,而且重用率极低;在非常接近Java语言的Scala里原创 2017-08-15 21:12:30 · 6384 阅读 · 0 评论 -
scala学习-1-eclipse编写第一个程序unknown scala version problem
0。准备工作,安装scala-2.11.8(安装windows板的http://www.scala-lang.org/download/2.11.8.html),下载spark2.1.1-bin-hadoop-2.71。下载scala的集成开发环境eclipse http://scala-ide.org/download/sdk.html2。解压就可以使用3。建立一个scala项目,把所有spar原创 2017-08-09 16:55:16 · 2350 阅读 · 2 评论 -
scala学习-scala中:: , +:, :+, :::, +++的区别
4种操作符的区别和联系:: 该方法被称为cons,意为构造,向队列的头部追加数据,创造新的列表。用法为 x::list,其中x为加入到头部的元素,无论x是列表与否,它都只将成为新生成列表的第一个元素,也就是说新生成的列表长度为list的长度+1(btw, x::list等价于list.::(x)):+和+: 两者的区别在于:+方法用于在尾部追加元素,+:方法用于在头部追加元素,和::很类似,但是::原创 2017-08-23 22:35:48 · 773 阅读 · 0 评论 -
scala学习-11-package object
Scala 2.8提供包对象(package object)的新特性。什么是包对象呢?按我的理解,根据Scala“一切皆对象”设计哲学,包(package)也是一种对象。既然是对象,那么就应该有属性和方法,也可以在包对象内声明某个类型的别名。举个例 package com{ package object ggd543{ type HashMap[A,B] = scala.colle原创 2017-10-09 13:37:51 · 2744 阅读 · 0 评论 -
scala学习-12-scala读取java项目下Src目录下的properties文件
scala读取java项目下Src目录下的properties文件 package scalaimport java.util.Propertiesimport java.io.FileInputStreamimport scala.tools.scalap.Mainobject PropertiesScalaUtils { def loadProperties(key:String):Un原创 2017-12-08 14:57:37 · 4422 阅读 · 0 评论 -
scala学习-11-package object
Scala中的下划线到底有多少种应用场景 1、作为“通配符”,类似Java中的*。如import scala.math._2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:a.filter(%2==0原创 2017-12-07 15:10:41 · 1061 阅读 · 0 评论 -
14-Scala之隐式转换
1.为什么要隐式转换 我们经常引入第三方库,但当我们想要扩展新功能的时候通常是很不方便的,因为我们不能直接修改其代码。scala提供了隐式转换机制和隐式参数帮我们解决诸如这样的问题。 Scala中的隐式转换是一种非常强大的代码查找机制。当函数、构造器调用缺少参数或者某一实例调用了其他类型的方法导致编译不通过时,编译器会尝试搜索一些特定的区域,尝试使编译通过。2. 优点 通过隐式原创 2018-01-25 10:45:38 · 1939 阅读 · 1 评论 -
15-Scala使用Option、Some、None,避免使用null
1.避免null使用 大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?1. Scala的Option类型 为了让所有东西都是对象的目标更加一致,也为了...转载 2018-03-29 22:28:14 · 761 阅读 · 0 评论 -
scala学习-scala读取Hbase表中数据并且做join连接查询
1。业务需求:sparkSQL on hbase ,sparkSQL直接读取Hbase中的两个表,进行连接查询。 2。图示 绿色的线 上图中绿色的线是做过测试的,直接在hive中建表,然后load数据进去,数据文件是存储在HDFS上的。 (1)建表 (2)添加数据 (3)执行hive元数据命令 (4)执行sparkSQL命令行 (5)测试sql语句 (6)执行结果蓝色的线 蓝原创 2017-08-15 23:04:21 · 8047 阅读 · 5 评论