
Java编程与Spark
Java编程记载
微电子学与固体电子学-俞驰
如切如磋,如琢如磨,臻于至善。
展开
-
离线实时与api对应的关系+未来流行度
相关集群 对应的API 流行度 离线计算 DataSet API 实时计算 DataStream API 从百度的搜索可以看到,实时计算才是未来的大数据主旋律。原创 2020-08-30 22:43:21 · 185 阅读 · 0 评论 -
method call expected
这个报错是因为:List是对象,不是方法,对象要用new 创建原创 2020-08-30 11:48:09 · 10098 阅读 · 0 评论 -
xxxx must either be declared abstract or implement abstract method ‘map(T)‘ in ‘MapFunction‘
完整报错如下:Class 'Anonymous class derived from MapFunction' must either be declared abstract or implement abstract method 'map(T)' in 'MapFunction'解决方案:env.generateSequence(1,10).map(new MapFunction<Long, Object>()鼠标挪动到<Long, Object>的右边,int原创 2020-08-29 22:07:41 · 1487 阅读 · 0 评论 -
Java根据正则生成随机字符串
调研了下,目前有两种开源工具:①import com.mifmif.common.regex.Generex; at com.mifmif.common.regex.Generex.prepareRandom(Generex.java:366) at com.mifmif.common.regex.Generex.prepareRandom(Generex.java:366) at com.mifmif.common.regex.Generex.prepareRandom(Ge...原创 2020-08-26 19:49:16 · 3542 阅读 · 0 评论 -
unreported exception java.lang.Exception; must be caught or declared to be thrown
import org.apache.flink.api.common.functions.MapFunction;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import org.apache.flink.streaming.api.windowing.time...原创 2020-08-25 14:27:02 · 5306 阅读 · 0 评论 -
Java中的Iterable与Iterator详解
在Java中,我们可以对List集合进行如下几种方式的遍历:List<Integer> list = new ArrayList<>();list.add(5);list.add(23);list.add(42);for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i) + ",");}Iterator it = list.iterator();while (it.ha转载 2020-08-20 10:17:26 · 387 阅读 · 1 评论 -
这几年人工智能和大数据的真实就业规律
hortonworks和cloudera在两年前合并了,如果满地都是钱,肯定不愿意合并。有这么几个原因:①小公司搞大数据不如excel来张报表②大公司看年龄③中型公司处于自己都没摸索明白和跟风中。④一线城市的一些it公司没有一线城市的人,找地皮便宜的地方开公司,薪水都不行,还不如应届硕士。所以之前嚷嚷的一大堆java想要转向大数据的美梦大概是要泡汤了。。。。...原创 2020-08-19 08:56:49 · 350 阅读 · 0 评论 -
spark加盐(salting)操作
首先研究下,spark里面有没有salting这个说法呢?百度上没有,但是谷歌上有,所以我取了这么个博客标题。两阶段聚合(局部聚合+全局聚合)方案适用场景:对RDD执行reduceByKey等聚合类shuffle算子或者在Spark SQL中使用group by语句进行分组聚合时,比较适用这种方案。方案实现思路:这个方案的核心实现思路就是进行两阶段聚合。第一次是局部聚合,先给每个key都打上一个随机数,比如10以内的随机数,此时原先一样的key就变成不一样的了,比如(hello, 1)原创 2020-08-17 16:10:36 · 2430 阅读 · 0 评论 -
Spark数据倾斜-采样倾斜key并分拆join操作-详细图解与代码
本文修改自[1]中的方案六。这个方案的图解不是太清楚,所以我根据代码在原有图基础上做了大量的标注:由于美团给出的代码是2016年的,那个时候的spark版本非常旧,并且有很多bug是不是觉得看得见摸不着?呵呵~我已经将其补充完整:优化前的完整Java工程优化后的完整Java工程Reference:[1]Spark性能优化指南——高级篇...原创 2020-08-12 21:17:32 · 1010 阅读 · 0 评论 -
Java常用spark的pom.xml与读取csv为rdd到最终join操作+java常用pom.xml文件
能进行join的只能是:JavaPairRDD代码如下:import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.function.Function;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaSparkCon原创 2020-08-11 17:09:09 · 574 阅读 · 0 评论 -
java写spark碰到输出为[Ljava.lang.String;@889a8a8的情况
原始代码如下:import com.sun.rowset.internal.Row;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.function.*;import org.slf4j.event.Level;import scala.Tuple2;import java.util.*;import java.util.Random;import org.apache.spark原创 2020-08-11 13:16:38 · 1900 阅读 · 0 评论 -
Java语言抑制spark的log中的info信息+spark常用pom.xml
import org.apache.log4j.Logger;public class sampling_salting{public static void main(String[] args) { Logger.getLogger("org.apache.hadoop").setLevel(org.apache.log4j.Level.WARN); Logger.getLogger("org.apache.spark")..原创 2020-08-11 11:15:14 · 331 阅读 · 0 评论 -
java8中的lambda用法实例
代码来自[1],但是[1]中的代码不完整,所以修改后如下:import java.util.*;import java.util.List;import java.util.stream.Collectors;public class Main{ private static class Customer { private String name; private int points; private Customer(Stri...原创 2020-08-08 15:15:06 · 301 阅读 · 0 评论 -
idea提示 cannot resolve symbol “println
解决方案:①检查public static void main(String[] args){}是否没写②File->Invalidate Cashes/Restart转载 2020-08-05 18:10:02 · 1363 阅读 · 0 评论 -
xxx must either be declared abstract or implement abstract method ‘call(T1, T2)‘ in ‘Function2
intellij提示如下:Class 'Anonymous class derived from Function2' must either be declared abstract or implement abstract method 'call(T1, T2)' in 'Function2'结局方案:private static Function2 <String, Long,Long> func2=new Function2<String,Long,Long.原创 2020-08-05 17:46:55 · 2852 阅读 · 0 评论 -
xxx in ‘Anonymous class derived from xxx clashes with ‘call(T)‘ in xxx attempting to use incompati
完整报错如下:'call(Tuple2<Long, Row>)' in 'Anonymous class derived from org.apache.spark.api.java.function.PairFlatMapFunction'clashes with 'call(T)' in 'org.apache.spark.api.java.function.PairFlatMapFunction';attempting to use incompatible return ty原创 2020-08-04 16:23:10 · 1799 阅读 · 0 评论 -
Unchecked call to ‘mapoPair(PairFunction<T,K2,V2>)‘ as a member of raw type
先解释下这里面的T,K2,V2啥意思。这个是官方文档随便标记的,意思是:PairFunction<T, K, V> T => Tuple2<K, V> 也就是说,T是入口参数,K和V是返回的一个二维数组。但是注意哈,这里是范型,而不是写死的函数。如果是写死的函数,我们知道函数名前面是返回的变量的类型。但是由于是泛型,这里函数名前面同时写了入口参数类型以及返回变量类型。那么上面这个同时警告要怎么消除呢?其实是因为忘记写泛型了。如下:...原创 2020-08-04 15:53:16 · 1402 阅读 · 0 评论 -
java.lang.NumberFormatException: For input string: “xxxx.“
java.lang.NumberFormatException: For input string: "history."解决方案:不是你的代码问题,去查看自己的数据原创 2020-08-03 15:04:31 · 2752 阅读 · 1 评论 -
Java FlatMapFunction in Spark: error: is not abstract and does not override abstract method解决方案
本文受到[1]的启发,但是和[1]中的解决方案不完全相同。原始代码如下:JavaRDD<String> lines = input.flatMap(new FlatMapFunction<String, String>() { public Iterable<String> call(String s) throws Exception { return Arrays原创 2020-08-03 12:06:51 · 2149 阅读 · 0 评论 -
java incompatible types: int cannot be converted to java.lang.Long
java incompatible types: int cannot be converted to java.lang.Long解决方案:1改成1L即可转载 2020-08-02 15:17:02 · 6526 阅读 · 0 评论 -
Non-static field ‘func1‘ cannot be referenced from from a static context
解决方案:加上static举例如下:public PairFunction func1 = new PairFunction <Tuple2<Long,Long>, String, Long>(){ private static final long serialVersionUID = 1L; @Override public Tuple2<String, Long> call(Tuple2<Long, Long..原创 2020-08-02 12:41:41 · 2164 阅读 · 0 评论 -
pom.xml中的artifactId是什么意思?
例如这里的maven-source-plugin就是下面的artifactId<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> <executions> <execut...原创 2020-08-01 15:35:08 · 6159 阅读 · 1 评论 -
Java中new function另外新建个文件的写法
Flink官网看到这么个例子:DataSet<WC> words = // [...]DataSet<WC> wordCounts = words // DataSet grouping on field "word" .groupBy("word") // apply ReduceFunction on grouped Dat原创 2020-08-01 15:18:45 · 589 阅读 · 0 评论 -
jshell的安装使用
组件 版本 Ubuntu 20.04 jdk 9 必须是jdk9才行,下载路径是:注意点击下面的下载按钮,不要点击文件名,并且必须登录oracle以后才能下载效果如下:原创 2020-07-31 22:01:33 · 874 阅读 · 0 评论 -
Exception in thread “main“ java.lang.IllegalArgumentException: http://www.dmg.org/PMML-4_4(没搞定)
为了让java加载sklearn的模型,各种苦头啊。。Exception in thread "main" java.lang.IllegalArgumentException: http://www.dmg.org/PMML-4_4 at org.dmg.pmml.Version.forNamespaceURI(Version.java:62) at org.jpmml.model.filters.PMMLFilter.updateSource(PMMLFilter.java:121) at原创 2020-07-13 23:31:50 · 2332 阅读 · 5 评论 -
@Test的作用以及Testcase和TestSuite的用法
@Test放在top文件TestCaseDemos.java中,不放在业务文件Calculator.java中.@Test 作用 有 顶层函数必须是testadd,testplus 无 顶层函数必须是testadd,testplus #--------------------------------------------------------------------------------------------------------------------.原创 2020-07-10 09:43:33 · 1886 阅读 · 0 评论 -
SSH与SSM的区别以及相关技术的流行度
先来百度一下,看看目前在流行啥百度搜索搜索关键词 百度返回数量 SSM Java SSH Java 可以看到是SSM胜出。所在分层 SSH SSM 页面层(View) JSP JSP 控制器层(Controller) Struts2 SpringMVC 业务层(Service) JAVA JAVA 持久层(DAO) Hibernate Mybatis .原创 2020-07-07 19:08:44 · 591 阅读 · 0 评论 -
菜鸟教程中Java语法(Java教程+Java面向对象)
Java基本数据类型Java变量类型Java运算符Java循环语句Java条件语句Java switch caseJava Number & Math类Java Character类public class Test { public static void main(String args[]) { System.out.print("------------------------Java基本数据类型----------------------转载 2020-06-21 17:05:49 · 487 阅读 · 0 评论 -
iamond operator is not supported in -source 1.5
intellij运行flink出现下面的问题Error:(56, 48) java: diamond operator is not supported in -source 1.5 (use -source 7 or higher to enable diamond operator)下面是我的完整pom.xml文件,裏面紅色的是解決方案<?xml version="1.0" encoding="UTF-8"?><project xmlns="htt...原创 2020-06-20 22:17:44 · 471 阅读 · 0 评论 -
java中四种线程池的区别
本文按:一. 线程池的使用二. 几种线程池的区别三. 如何合理配置线程池一.线程池的使用在Java中,通常使用Executors 获取线程池。常用的线程池有以下几种:(1)CachedThreadPool(2)FixedThreadPool(3)ScheduledThreadPool(多核线程池)(4)SingleThreadExecutor(单核线程池)明确概念:阻塞队...转载 2020-05-01 14:44:36 · 1741 阅读 · 0 评论 -
根据进程名杀掉jps中的进程名
kill `jps | grep "DataNode" | cut -d " " -f 1`转载 2020-04-30 18:49:27 · 984 阅读 · 0 评论 -
Exception in thread "main" java.time.format.DateTimeParseException: Text '31-Dec-13' could not be pa
完整报错如下:------------------------------看下lines-----------------------------------lines=Stream(Date,Open,High,Low,Close,Volume, ?)lines=Stream(31-Dec-13,114.61,117.13,114.46,116.12,12838233, ?)Exc...原创 2019-05-15 14:49:33 · 5090 阅读 · 2 评论 -
java进行md5运算(Java类函数调用)
eclipse中保存为md5test.javapackage xiamimd5;import java.security.MessageDigest;import java.io.*;import java.util.*;import java.math.*;import java.io.IOException;import java.io.UnsupportedEncodingE转载 2017-11-27 17:02:45 · 1272 阅读 · 0 评论