RDD vs. Dataset vs. DataFrame
主要介绍RDD、Dataset/DataFrame三者之间的转换,和一些使用上的差异。 basic RDD[T] DataFrame DataSet[T] DataFrame vs. Dataset DataFrame取值 相互转换 Dataset -> DataFram...
主要介绍RDD、Dataset/DataFrame三者之间的转换,和一些使用上的差异。 basic RDD[T] DataFrame DataSet[T] DataFrame vs. Dataset DataFrame取值 相互转换 Dataset -> DataFram...
Spark学习可以看一些书获取一些基本知识。不过spark官网已经提供了足量的涵盖各个方面的学习资料,更重要的是这些内容都非常新,这一点是书本没法比的。大致汇总、概述一下官网上要看的资料,方便学习: 官网 docs下的链接 非docs下的有用链接 spark的论文、分享: 其他 总结 官网 docs下的链接 ove...
没想到在了解并大致看了Guava提供的ListenableFuture的源码实现后,再看JDK的CompletableFuture,竟然如此简单与清晰。实际上二者做的事情、实现思路差不太多。果然还是那个道理:越强的人学东西越快,速度大的人往往加速度还大,越有钱的人越容易赚钱……气不气…… 思路 具体方法 创建 链式 ...
JDK中任务和任务的执行者是一套设计的比较好的相互解耦的框架。之前在Java并发编程:并发任务执行及结果获取描述过jdk中关于Executor的基本逻辑,这次从更加宏观的角度重新全面梳理一下,并补充一点Guava对Executor和Future的拓展。 任务 Runnable/Callable - 简单任务表示 Runnable...
ListenableFuture是Guava里拓展了Future的接口,增加了回调行为。所以要比Future更强大。Guava建议使用ListenableFuture取代Future。而且,看ListenableFuture的实现过程,也能让人获益良多。 约定 Future &. ExecutorService ListenableFuture...
在RESTful - RestTemplate中,说了自动转换都是由Http消息转换器做的。 Controller产生数据之后,DispatcherServlet不再需要将模型数据传送给视图,首先没有了模型Model,其次也没有视图View,只有控制器产生的数据,再使用消息转换器转换为一定格式的数据。 场景 HttpMessageConverter HttpMessageC...
Java Collection Framework, JCF,Java集合框架。JDK提供了很多丰富的工具集合,其他比如guava也补充了jdk里没有的更为丰富的工具集合。了解这些工具集合,就可以在不同的场景选用不同的工具,提升效率而且编程实现的会很漂亮。 接口 Collection List ArrayList LinkedList ...
生产者消费者模式是并发编程的一个经典入门场景。假设多个生产者生产一定数量的东西到队列,多个消费者从队列中取走这些东西。如果队列为空,消费者阻塞;如果队列已满,生产者阻塞。如何不出现访问错误,同时尽可能优化性能? 支持并发put/get的有界队列 自旋等待 优缺点 休眠轮询 ...
在Java中,一个线程是不能终止另一个线程的,除非那个线程自己想退出,或者JVM退出了。 比如: new Thread( new Runnable() { @Override public void run() { while (true) { } } } ).start(); 这个线程在开启之后一直在做无意义的空循环,且这个线程本...
https://developers.google.com/protocol-buffers/docs/overview protobuf比xml更快、更小。 顺便探讨一下序列化的机制。 语言规范 Java使用 Encoding 普通的序列化 protobuf序列化 序列化数字 - Varint ...