Apache Spark

spark笔记(二)之RDD常用算子

♀尐吖头ヾ 提交于 2020-08-11 21:42:31
大家好!下面是我在疫情假期期间学习的saprk算子笔记,刚刚用了一下午的时间把它整理出来分享给大家!码字实属不易如果对你有帮助,记得点赞呦! 文章目录 一.spark行动算子 二.spark单value类型 三.spark双value类型 四.spark算子KV类型 一.spark行动算子 1.reduce( f: (T, T) => T ) :通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。 val list1 : RDD [ Int ] = sc . makeRDD ( 1 to 10 ) val reduceRDD : Int = list1 . reduce ( _ + _ ) println ( reduceRDD ) //55 2.collect() :在驱动程序中,以数组的形式返回数据集的所有元素。 val list1 : RDD [ Int ] = sc . parallelize ( List ( 1 , 2 , 3 , 4 , 5 ) ) list1 . collect ( ) . foreach ( println ) 返回值:Array ( 1 , 2 , 3 , 4 , 5 ) 3.count() :返回RDD中元素的个数。 val list1 : RDD [ Int ] = sc . parallelize ( List (

个推如何采用Greenplum提高PB级别数据处理能力

橙三吉。 提交于 2020-08-11 20:11:08
以下内容仅供交流学习使用,如有侵权会及时删除。 大家好!我是来自个推的栗子,感谢Greenplum中文社区!今天我给大家讲一讲个推在Greenplum中的实践。那我们就直接进入今天的分享主题《个推如何采用Greenplum提高PB级别数据处理能力》 近年来,移动互联网、物联网、云计算的快速发展,催生了海量的数据。在大数据处理方面,不同技术栈所具备的性能也有所不同。如何快速有效地处理这些体量庞大的数据,令不少开发者为之苦恼。随着Greenplum的异军突起,以往大数据仓库所存在的很多问题都得到了有效解决,Greenplum也成为新一代数据库的典型代表。 今天,我将就个推在处理庞大的数据量时,如何选择有效的技术栈进行介绍,并结合自身业务场景,分析一下Greenplum在个推中的实践。 Greenplum助手: 首先,我们来看一下Greenplum诞生的背景。 2002年,互联网数据量正处于快速增长期,一方面传统数据库难以满足当前的计算需求,另一方面传统数据库大多基于SMP架构,扩展性能差。因此面对日益增长的数据量,SMP架构难以继续支撑,开发者需要一种数据库,可以支持分布式并行数据计算能力,Greenplum便应运而生。大家都知道,和传统数据库的SMP架构不同,Greenplum是一种完全无共享(Share Nothing)的结构,相比SMP,扩展能力明显提升。大家可以看一下这张图

nodeJs + js 大文件分片上传

自古美人都是妖i 提交于 2020-08-11 19:19:34
简单的文件上传 一、准备文件上传的条件: 1、安装nodejs环境 2、安装vue环境 3、验证环境是否安装成功 二、实现上传步骤 1、前端部分使用 vue-cli 脚手架,搭建一个 demo 版本,能够实现简单交互: < template > < div id ="app" > < input type ="file" @change ="uploadFile" ></ button > </ div > </ template > 2、安装 axios 实现与后端交互: import Axios from 'axios' const Server = Axios.create({ baseURL: '/api' }) export default Server 3、后端使用 node-koa 框架: // index.js const Koa = require('koa' ); const router = require('koa-router')() // koa路由组件 const fs = require('fs') // 文件组件 const path = require('path') // 路径组件 const koaBody = require('koa-body') // 解析上传文件的插件 const static = require('koa

从0到1:构建强大且易用的规则引擎

拟墨画扇 提交于 2020-08-11 17:06:44
     引言   2016年07月恰逢美团点评的业务进入“下半场”,需要我们在各个环节优化体验、提升效率、降低成本。技术团队需要怎么做来适应这个变化?这个问题直接影响着之后的工作思路。   美团外卖的CRM业务步入成熟期,规则类需求几乎撑起了这个业务所有需求的半边天。一方面规则唯一不变的是“多变”,另一方面开发团队对“规则开发”的感受是乏味、疲惫和缺乏技术含量。如何解决规则开发的效率问题,最大化解放开发团队成为目前的一个KPI。   规则引擎作为常见的维护策略规则的框架很快进入我的思路。它能将业务决策逻辑从系统逻辑中抽离出来,使两种逻辑可以独立于彼此而变化,这样可以明显降低两种逻辑的维护成本。   分析规则引擎如何设计正是本文的主题,过程中也简单介绍了实现方案。   案例   首先回顾几个美团点评的业务场景。通过这些场景大家能更好地理解什么是规则,规则的边界是什么。在每个场景后面都介绍了业务系统现在使用的解决方案以及主要的优缺点。    门店信息校验 场景   美团点评合并前的美团平台事业部中,门店信息入口作为门店信息的第一道关卡,有一个很重要的职责,就是质量控制,其中第一步就是针对一些字段的校验规则。   下面从流程的角度看下门店信息入口业务里校验门店信息的规则模型(已简化),如下图。   规则主体包括3部分:   分支条件。分支内逻辑条件为“==”和“<”。   简单计算规则

电影推荐系统项目的数据处理部分

瘦欲@ 提交于 2020-08-11 15:04:06
目录 项目架构 前期工作:数据加载 离线推荐 统计推荐 ALS离线推荐 实时推荐 这个项目的整体业务逻辑是通过Spring进行搭建,并部署在Tomcat上的。业务产生的数据一部分被存储到mongoDB并用于spark sql和ml的离线计算。另一部分被传送到Flume,经kafka到达spark streaming进行实时计算。还有一部分数据存储到redis,同样运用到spark streaming上。本文主要关注spark相关的部分。项目的原始实现主要基于RDD,而且有不少低效的代码实现。本文在此基础上对80%的spark相关代码进行了重写,使新的实现在运行效率上提高了两倍以上、内存使用减少了几倍、代码量也减少近一半。 项目架构 综合业务:Spring、Tomcat 数据存储:业务数据MongoDB、搜索服务数据ES、缓存数据Redis 离线和实施推荐:Spark DF、ML、Streaming 消息服务:Kafka 【数据加载】 数据加载服务,主要用于项目的数据初始化,用于将三个数据集(Movies【电影的数据集】、Rating【用户对于电影的评分】、Tags【用户对于电影的标签】)初始化到Mongodb数据库以及ElasticSearch里面。 【离线推荐】 通过Azkaban周期性的调度【离线统计服务】和【离线推荐服务】。 【离线统计服务】 最热电影统计算法 =>

一年经验大数据开发网易游戏社招面经(已拿offer)

久未见 提交于 2020-08-11 13:42:01
先说一下背景,我是19年毕业的一所普通211的本科生,在国企工作一年,感觉技术进入瓶颈,就想跳槽了。不得不说今年行情确实很差,加上我工作年限太短了,投了一个多月的简历才拿到一个网易游戏的面试机会,所以劝各位想换工作的话最好还是别裸辞。话不多说,网易面试一共两轮技术面+一轮HR面: 一面(技术面:1个小时) 自我介绍 数仓整条链路具体负责哪块 团队多少人 Flume具体配置 Flume到Kafka的一次性 Kafka的exactly once如何保证 Kafka下游消费速度比不上生产速度怎么办 讲一下Spark Streaming的背压 Kafka消费延迟很大对Kafka会有什么影响 从kafka原理解释一下为什么Kafka消费越是延迟性能会越差 HDFS有什么组件分别负责干什么 详细说一下HDFS的HA 计算框架用的什么 YARN有什么组件分别负责干什么 有没有了解过Yarn配置中的vmemory和vcore 结合项目介绍一下数仓的建设、分层 说一下拉链表 Spark和MR的区别 怎么增大Spark Streaming的并行度 Spark持久化 RDD,DataFrame,DataSet的区别 JVM内存结构 介绍一下GC 挑一个最熟悉的垃圾收集器讲一下 io,nio,bio的区别 HashMap和HashTable的区别 你有什么想问的吗 二面(项目面:50分钟) 自我介绍

nodeJs + js 大文件分片上传

假如想象 提交于 2020-08-11 13:40:52
简单的文件上传 一、准备文件上传的条件: 1、安装nodejs环境 2、安装vue环境 3、验证环境是否安装成功 二、实现上传步骤 1、前端部分使用 vue-cli 脚手架,搭建一个 demo 版本,能够实现简单交互: < template > < div id ="app" > < input type ="file" @change ="uploadFile" ></ button > </ div > </ template > 2、安装 axios 实现与后端交互: import Axios from 'axios' const Server = Axios.create({ baseURL: '/api' }) export default Server 3、后端使用 node-koa 框架: // index.js const Koa = require('koa' ); const router = require('koa-router')() // koa路由组件 const fs = require('fs') // 文件组件 const path = require('path') // 路径组件 const koaBody = require('koa-body') // 解析上传文件的插件 const static = require('koa

Spark 系列(六)Spark-GraphX的PageRank算法----热度排名的实例代码+图解展示

左心房为你撑大大i 提交于 2020-08-11 12:05:16
写在前面: 我是 「nicedays」 ,一枚喜爱 做特效,听音乐,分享技术 的 大数据开发猿 。这名字是来自 world order 乐队的一首 HAVE A NICE DAY 。如今,走到现在很多坎坷和不顺,如今终于明白 nice day 是需要自己赋予的。 白驹过隙,时光荏苒,珍惜当下 ~~ 写博客一方面是对自己学习的一点点 总结及记录 ,另一方面则是希望能够帮助更多对大数据感兴趣的朋友。如果你也对 大数据与机器学习 感兴趣,可以关注我的 动态 https://blog.csdn.net/qq_35050438 ,让我们一起挖掘数据与人工智能的价值~ Spark GraphX 图算法: 一:PageRank模型: 每个网页为一个点 A到B的链接抽象为一条有向边 整张网页链接抽象成一份有向图 接下来我们通过一个转移矩阵来表示用户从页面i到页面j的可能性 M = [ 0 1 2 0 1 2 1 3 0 0 1 2 1 3 1 2 0 0 1 3 0 1 0 ] M = \begin{bmatrix}0 & \frac{1}{2} & 0 & \frac{1}{2} \\\frac{1}{3} & 0 & 0 & \frac{1}{2} \\\frac{1}{3} & \frac{1}{2} & 0 & 0 \\\frac{1}{3} & 0 & 1 & 0\end{bmatrix

Spark入门学习笔记

℡╲_俬逩灬. 提交于 2020-08-11 10:03:29
Spark SQL & DateFrame Dataset是RDD的封装,DataFrame是Dataset的进一步封装。 A Dataset is a distributed collection of data. Dataset is a new interface added in Spark 1.6 that provides the benefits of RDDs (strong typing, ability to use powerful lambda functions) with the benefits of Spark SQL’s optimized execution engine. A DataFrame is a Dataset organized into named columns. Spark 中间表 参考资料 官网-Spark-SQL 来源: oschina 链接: https://my.oschina.net/u/4341499/blog/4460932

半小时,将你的Spark SQL模型变为在线服务

限于喜欢 提交于 2020-08-11 09:38:32
SparkSQL在机器学习场景中应用 第四范式已经在很多行业落地了上万个AI应用,比如在金融行业的反欺诈,媒体行业的新闻推荐,能源行业管道检测,而SparkSQL在这些AI应用中快速实现特征变换发挥着重要的作用 SparkSQL在特征变换主要有一下几类 多表场景,用于表之间拼接操作,比如交易信息表去拼接账户表 使用udf进行简单的特征变换,比如对时间戳进行hour函数处理 使用时间窗口和udaf进行时序类特征处理,比如计算一个人最近1天的消费金额总和 SparkSQL到目前为止,解决很好的解决离线模型训练特征变换问题,但是随着AI应用的发展,大家对模型的期望不再只是得出离线调研效果,而是在真实的业务场景发挥出价值,而真实的业务场景是模型应用场景,它需要高性能,需要实时推理,这时候我们就会遇到以下问题 多表数据离线到在线怎么映射,即批量训练过程中输入很多表,到在线环境这些表该以什么形式存在,这点也会影响整个系统架构,做得好能够提升效率,做得不好就会大大增加模型产生业务价值的成本 SQL转换成实时执行成本高,因为在线推理需要高性能,而数据科学家可能做出成千上万个特征,每个特征都人肉转换,会大大增加的工程成本 离线特征和在线特征保持一致困难,手动转换就会导致一致性能,而且往往很难一致 离线效果很棒但是在线效果无法满足业务需求 在具体的反欺诈场景,模型应用要求tp99