摘要: 主要是基于2种情形 1) 提供读只取/只写入方法,不能随意读写 2)做赋值时变量控制,比如设定值的区间范围等 例子: object test{ def main(args: Array[String]): Unit = { val person = new person person.name_=( 阅读全文
posted @ 2021-08-16 17:04 梦里繁花 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 在scala源码中有大量的:_*,其作用是把Array、list转换为参数列表,作为变长参数传入参数列表 例子: def sumx(a:Int*)={ a.sum } val a=Range(1,9) println(a.toString) println(sumx(a:_*)) 阅读全文
posted @ 2021-08-16 14:57 梦里繁花 阅读(1031) 评论(0) 推荐(0) 编辑
摘要: 普通的try-catch-finally Try{ } catch{//不加catch向上抛出异常 case _=> } finally{//一般是资源关闭 } 普通的try-finally Try{ } finally{//一般是资源关闭 } try-finally,没有抛出异常,还是会报错,只不 阅读全文
posted @ 2021-08-16 10:34 梦里繁花 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1、打开spark.sql.adaptive开关 阅读全文
posted @ 2021-08-15 21:39 梦里繁花 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 建议git本身日常的代码提交工作建议使用命令行,涉及修改对比等再用图形化工具 1、打开git 命令行工具 在pull下来的git工程目录,右键git Bash Here 2、打开git TortoiseGit 的差异对比 在pull下来的git工程目录,右键TortoiseGit --差异对比(英文 阅读全文
posted @ 2020-01-08 10:01 梦里繁花 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 该问题先标记上,之后有空了研究原因。 在var dataframe后将dataframe作为参数输入某方法,将结果重新赋予该dataframe,会导致spark运行显著减慢速度。暂时不知道原因,之后研究(可以去stackoverflow提问)将数据来源改为val之后运行速度显著提高。超过100倍速度 阅读全文
posted @ 2019-12-14 19:14 梦里繁花 阅读(538) 评论(0) 推荐(0) 编辑
摘要: 1、无必要,则不重命名,保持变量名称、意义一致 2、确保代码、配置文件、说明文档唯一性 务必保证调用配置文件唯一性,同样意义的东西,不要让开发人员在多处重复定义(多出现于应用有不同版本同时开发,不同版本配置文件位置各不相同时) 阅读全文
posted @ 2019-12-05 15:14 梦里繁花 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 今天一个生产环境任务出现了性能问题,,经过仔细检查发现是在一个join操作时,原设定广播右表数据广播失败,导致后续步骤进行缓慢,,报错信息 java.io.IOException: org.apache.spark.SparkException:Failed to get broadcast_544 阅读全文
posted @ 2019-11-05 11:17 梦里繁花 阅读(1602) 评论(0) 推荐(0) 编辑
摘要: COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。 如果需要对某列为空时赋予默认值,常使用COALESCE(a,10) a为列名,10为默 阅读全文
posted @ 2019-10-23 09:40 梦里繁花 阅读(3390) 评论(0) 推荐(0) 编辑
摘要: 今天遇到一个现场问题,任务报错java.io.InvalidClassException。在开发环境是没有报错的,正式环境报错。大概类似于下面这样(非报错原文,摘自网上同类博客) java.io.InvalidClassException: com.test.Test; local class in 阅读全文
posted @ 2019-10-21 16:29 梦里繁花 阅读(4856) 评论(0) 推荐(0) 编辑