Scala
Souvenirser
劳逸结合!
展开
-
Scala的Jackson解析String失败的解决办法com.fasterxml.jackson.core.JsonParseException
com.fasterxml.jackson.core.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 8)): has to be escaped using backslash to be included in string value. json中存在Ascii码值为32(十进制)以下的控制字符,如换行、文件分隔符等,需要将其替换掉,存在文件控制符FS,存在空格,换行符,制表符等,其是不可见字符,正则替换掉即可原创 2023-03-22 11:56:52 · 1882 阅读 · 0 评论 -
对比Spark repartitionAndSortWithinPartitions 与 repartition + sortByKey,附代码示例
我们刚讲到 repartition 源码中用的是 Murmur3Hash 方式进行Hash的, 这也无法避免次问题, 那么repartition 和 repartitionAndSortWithinPartitions都无法完全避免HashCode冲突的问题, 我们应该怎么办呢?通过代码我们可以看到, 这里是使用对logid进行hashCode, 然后取 % 进行分区, 当数据量过大时, 就会出现Hash冲突的问题.当然, 还可尝试先md5再hashCode,效果与上述结果类似.原创 2022-12-20 11:17:22 · 584 阅读 · 0 评论 -
浅谈Spark groupBy、reduceByKey与aggregateByKey,解决频繁Full GC问题
groupBy效率较慢,可以使用reduceByKey / aggregateByKey替代groupBy, 因为这两个算子可以进行预聚合. 但是需要先将DataFrame转为RDD.Spark中建议不要使用过于复杂的数据结构,如: HashMap[String, String], ArrayList等,建议使用最简单的数据结构.预聚合部分是将多个String转为Array[String],减少了数据结构中Array的使用.后面再聚合部分是将预聚合中的Array[String]进行再聚合.原创 2022-12-20 20:30:42 · 1065 阅读 · 1 评论 -
记录解决HashMap与HashPartition中数据量过大发生Hash冲突问题
当HashMap的Key是较长的字符串且数据量较大时,极容易出现Hash冲突,此时建议将Key做进一步处理, 如MD5后再塞回,可降低Hash冲突率,减少Hash重复的数量。原创 2022-12-22 20:46:16 · 286 阅读 · 0 评论 -
Spark 判断目录是否存在, 若存在则删除,若不存在则创建
【代码】Spark 判断目录是否存在, 若存在则删除,若不存在则创建。原创 2023-03-08 20:18:24 · 278 阅读 · 0 评论 -
Scala List与Java List相互转换及代码示例详解
前提: 导入Maven包 (地址: https://mvnrepository.com/artifact/org.scala-lang/scala-library). java arraylist转为scala list, scala list转为java list示例详解.scala和java list互转语法原创 2023-02-24 11:58:40 · 436 阅读 · 0 评论 -
Spark show展示所有字段,控制输出行数(不隐藏字段)
当输出字段过多或者过长时, spark会默认隐藏后面的字段,不好debug,我们只需要在 show() 括号内输入truncate = false即可. 默认为true, 为true时则隐藏.控制输出行数并且展示所有字段,不进行隐藏原创 2023-02-16 19:41:50 · 2399 阅读 · 0 评论 -
java、scala带除号(/)和点(.)的String分数(1/2 , 2/3 , 1.0/2.0 , 2.0/3.0 ...)转小数或数字(Double、Float、Int等)失败情况的解决办法
在开发中, 发现将String: 1/2 或者1.0/2.0 转为Double会直接报错。完美解决Exception in thread "main" java.lang.NumberFormatException: For input string: "1/2"报错问题.成功转为小数. scala隐式转换分数为小数时失败,但不报错原创 2023-02-13 03:01:40 · 259 阅读 · 0 评论