[记录点滴] Spark迁移到Flink的几个点
[记录点滴] Spark迁移到Flink的几个点
0x00 三个问题点
有三个Spark API需要找到对应的Flink API或者替代方法
reduceByKeyAndWindow
函数reduceByKeyAndWindow(+,-,Seconds(3s),seconds(2)) 设计理念是,当 滑动窗口的时间Seconds(2) < Seconds(3)(窗口大小)时,两个统计的部分会有重复,那么我们就可以 不用重新获取或者计算,而是通过获取旧信息来更新新的信息,这样即节省了空间又节省了内容,并且效率也大幅提升。
groupByKey()
这个居然是用来去重:groupByKey().map( a => (a.1, a._2.head))
因为groupByKey的第二个参数就是列表,如果这个列表的元素都是相同的,则head操作就实际上起到了去重作用。
coalesce 如何替代
0x01 解决
reduceByKeyAndWindow
这个用 text.keyBy(0).timeWindow(start, end).reduce来完成
groupByKey()去重
这个用text.keyBy(0).timeWindow(start, end).sum(1).filter(x => {x!=null}).map(x => x._1)
其中sum..filter().map()就起到了去重
coalesce 如何替代
这个目前方法是使用setParallelism(n)来限定输出文件数目。如果是csv文件,可以再加上partitionByHash。或者可以再加上一个 rebalance。
wordCounts.partitionByHash(1).writeAsCsv("xxx").setParallelism(2);
text.writeAsText("xxx").setParallelism(2);
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=33pqkc4zbzy84
[记录点滴] Spark迁移到Flink的几个点的更多相关文章
- Spark Streaming,Flink,Storm,Kafka Streams,Samza:如何选择流处理框架
根据最新的统计显示,仅在过去的两年中,当今世界上90%的数据都是在新产生的,每天创建2.5万亿字节的数据,并且随着新设备,传感器和技术的出现,数据增长速度可能会进一步加快. 从技术上讲,这意味着我们的 ...
- hadoop之Spark强有力竞争者Flink,Spark与Flink:对比与分析
hadoop之Spark强有力竞争者Flink,Spark与Flink:对比与分析 Spark是一种快速.通用的计算集群系统,Spark提出的最主要抽象概念是弹性分布式数据集(RDD),它是一个元素集 ...
- 反射记录点滴——Field
反射记录点滴 1. 反射获取类的属性 Class.getDeclareFileld(String name) 返回一个Filed对象,该对象反映此Class对象所表示的类或接口的指定已声明字段. Cl ...
- [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题
[记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题 目录 [记录点滴]授人以渔,从Tensorflow找不到dll扩展到如何排查问题 0x00 摘要 0x01 引言 0x02 ...
- 问题记录:spark读取hdfs文件出错
错误信息: scala> val file = sc.textFile("hdfs://kit-b5:9000/input/README.txt") 13/10/29 16: ...
- 记录项目代码迁移后,UI测试框架的搭建(配置文件的修改、测试脚本试运行)
前文:记录一次项目代码迁移过程 上文代码迁移的目的就是为了新增vue脚手架自带的UI测试框架,工具有了,就需要实践运行在项目中了(修改配置文件.编写测试脚本等). 一.单元测试 测试框架 karma ...
- 继续Wcf记录点滴
之前说wcf以tcp协议作为通信方式的话会出现很多奇怪的bug,今天我把自己遇到的比较特殊的一个exception和解决方案列出来.主要是自己记录一下,顺便方便遇到这个问题的有缘人吧!废话不多说直接上 ...
- Spark记录-本地Spark读取Hive数据简单例子
注意:将mysql的驱动包拷贝到spark/lib下,将hive-site.xml拷贝到项目resources下,远程调试不要使用主机名 import org.apache.spark._ impor ...
- Android项目记录点滴2
1.把本机地址广播出去private void sendIP() { try { DatagramSocket dgSocket = new DatagramSocket(8989); byte[] ...
- Android项目记录点滴
服务器端:(根据Apache POI库函数其中SlideShow表示PPT文档,Slide表示某一张幻灯片) 1.先把电脑中的PPT文件读入到一个字节数组中.(输入流-->字节数组-->输 ...
随机推荐
- 《Django 5 By Example》阅读笔记:p237-p338
<Django 5 By Example>学习第11天,p237-p338总结,总计102页. 一.技术总结 1.follow system(关注功能) 表之间的关系有三种:OneToOn ...
- JDocumentEditor
package infonode; /** * * @author sony */ //JDocumentEditor.java import java.awt.*; import java.awt. ...
- 关于《完全手册Excel VBA典型实例大全——通过368个例子掌握》随书样例的下载
按照早先下载的电子教程查看和编写vba,有些例子使用运行错误,想着看看原始文件.容易看到,网上有提供的doc或者pdf文档,都不完整,可能是{完全手册Excel_VBA典型实例大全:通过368个例子掌 ...
- Codeforces Round 887 (Div. 2)
C. Ntarsis' Set (\(1 \leq n,k \leq 2 \cdot 10^5\)) 题解:思维 + 二分 我们不妨反向考虑 由于答案最后一次一定在第一个位置 所以答案上一轮一定在 ...
- base64计算文件大小方法(C#和js)
base64文件大小计算 有时候图片被base64之后需要计算图片大小,因为被编码后全是字符,计算文件大小可以反序列化成文件之后再获取大小,但是会比较麻烦.简单介绍一种利用base64编码原理计算大小 ...
- 鸿蒙UI开发快速入门 —— part11: 鸿蒙计算器开发实践
1.前言 经过我们前面10章的学习,我们基本上可以开发出一个简单的APP了,为了巩固学习的内容,我们先开发一个计算器APP来连个手(文末有源代码),界面如下: 包含基本的计算器运算功能 支持一键清空, ...
- 推荐一款强大的开源物联网 Web 组态软件
前言 快速发展的物联网(IoT)领域,设备管理和监控的需求日益增长.为了满足这一需求并提供更高效的解决方案. 向大家推荐一款强大的开源物联网Web组态软件.这款软件不仅具备灵活的可视化配置功能,还提供 ...
- 时代新宠儿——HEIF图像格式:节省50%空间
HEIF全称High Efficiency Image File Format(高效图像文件格式),是一种高效的图片封装格式,文件名通常为.heif或者.heic后缀.HEIF能够在保持画质不变的前提 ...
- vscode 你想要的配置
配置用户代码片段 文件 → 首选项 → 配置用户代码片段 比如配置一个vue3的代码片段: { "vue3-code": { "prefix": "v ...
- IOS颜色选择器
IOS颜色选择器 UIColorWell UIColorWell是一个继承UIControl的视图,它不能调整大小和UISwitch类似,大小大约是44*44.点击可弹出一个选择颜色的弹窗 因为是继承 ...