数据处理

Spark数据处理与特征工程

时光总嘲笑我的痴心妄想 提交于 2020-02-27 10:54:33
sklearn在中小型数据集上,在工业界是在使用的 xgboost、lightgbm在工业界的实用度非常的高 工业界数据体量真的达到上亿或者十亿这样的规模用sklern处理起来是比较吃力的, 可借助于大数据的工具,比如spark来解决 现在可以用spark来做大数据上的数据处理,比如数据工程、监督学习、无监督学习模型的构建,只要计算资源够就OK。【大数据底层做分布式处理】 注意:spark基于RDD形态、DataFrame形态两种形态的工具库,其中基于RDD形态的工具库目前已经暂停维护,所以建议使用DataFrame形态 对连续值处理 binaizer/二值化、按照给定边界离散化、 quantile_discretizer/按分位数、最大最小值幅度缩放、标准化、添加多项式特征 对离散型处理 独热向量编码 对文本型处理 去停用词、Tokenizer、count_vectorizer、TF-IDF权重、n-gram语言模型 高级变化 sql变换、R公式变换 对连续值处理 有的变换器需要fit在transfrom,有的不需要 直接transfrom通常不需要去扫描数据的,比如二值化,只需要设置阈值即可 1.1、binarizer/二值化 #连续值处理 ##二值化 from __future__ import print_function from pyspark.sql import

Spark RDD

*爱你&永不变心* 提交于 2020-02-27 05:06:35
对 RDD 的学习进行一下整理 RDD: 基于内存的集群计算容错抽象 分布式内存抽象的概念 --- 弹性分布式数据集( RDD ),它具备 MapReduce 等数据流模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。 为了有效地实现容错, RDD 提供了一种高度受限的共享内存,即 RDD 是只读的,并且只能通过其他 RDD 上的批量操作来创建。 RDD 基于工作集的应用,同时具有数据流模型的特点:自动容错、位置感知调度和可伸缩性。允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,提升了查询速度 RDD 提供了一种高度受限的共享内存模型,即 RDD 是只读的记录分区的集合,只能通过在其他 RDD 执行确定的转换操作 ( 如 map 、 join 和 group by) 而创建,然而这些限制使得实现容错的开销很低。与分布式共享内存系统需要付出高昂代价的检查点和回滚机制不同, RDD 通过 Lineage 来重建丢失的分区:一个 RDD 中包含了如何从其他 RDD 衍生所必需的相关信息,从而不需要检查点操作就可以重构丢失的数据分区。 编程模型 a) 在 Spark 中, RDD 被表示为对象,通过这些对象上的方法 ( 或函数 ) 调用转换。 b) 定义 RDD 后,可在动作中使用 RDD 。动作是向应用程序返回值,或向存储系统导出数据的那些操作

如果你在准备面试,就好好看看这130道题

我的未来我决定 提交于 2020-02-27 05:01:02
这些题目是一个知识星球的球友发给我的,其中有几个题帮着解答了一下。希望对大家有帮助。 如果你不知道如何准备面试,那么看看这个。 年假马上来临,我相信有不少读者都在准备或者考虑面试,无论如何不妨收藏一下。 如果你某个题目不知道答案,那么就去搜一下,如果搜不到,在公众号回复【加群】,可以加到群里寻求小伙伴们的求助。或者扫最下面的二维码加小助手好友并留言,有时间后我会回复你。 顺便多提一句, 计算机基础和语言基础 请大家务必重视,如果你不是计算机专业,那么这些东西都要平时多看看。 这130个题暂时没有答案,很多题目《大数据技术与架构》都发过文章讲解过,需要你自己去准备,去看,去思考,真正理解。不要妄想别人喂给你,毕竟我们是人不是鸭子。 1、HashMap 和 Hashtable 区别 2、Java 垃圾回收机制和生命周期 3、怎么解决 Kafka 数据丢失的问题 4、zookeeper 是如何保证数据一致性的 5、hadoop 和 spark 在处理数据时,处理出现内存溢出的方法有哪些? 6、java 实现快速排序 7、设计微信群发红包数据库表结构(包含表名称、字段名称、类型) 8、如何选型:业务场景、性能要求、维护和扩展性、成本、开源活跃度 9、Spark如何调优 10、Flink和spark的通信框架有什么异同 11、Java的代理 12、Java的内存溢出和内存泄漏 13

Hadoop初体验——搭建hadoop简单实现文本数据全局排序

*爱你&永不变心* 提交于 2020-02-27 02:22:08
之前在实现一些机器学习算法时,跑数据量、feature很多的数据集往往要耗费很多时间,尤其是处理大量文本数据时候,单机跑算法的时间让我无法容忍,理论上如果合理的将大数据量分布式并行计算框架(例如hadoop)应用到这些算法上能有效提高算法执行速度(当然,要求算法本身可以全部或部分进行并行化处理),下一步想要学习Mahout( http://mahout.apache.org/ ),它的目标是: build scalable machine learning libraries ,它是基于hadoop的,所以在此之前需要学习一下Hadoop,先从hadoop搭建开始吧。 1、硬件、软件准备 手头上有三台配置一样的电脑,就不去装虚拟机了,配置如下: CPU:Intel(R) Pentium(R) Dual CPU E2200 @ 2.20GHz Memory:2001MiB Network:NetLink BCM5786 Gigabit Ethernet 三台电脑装有相同的操作系统——Ubuntu 11.04 2、安装过程 任选一台机器作为master,其他机器作为slaves,所有机器拥有相同的用户、相同的环境变量配置、相同的hadoop目录结构、相同的Java目录结构。 (1)、更改host文件 master机器:在终端执行:sudo gedit /etc/hosts,添加以下信息

Spark面试题

扶醉桌前 提交于 2020-02-26 23:12:53
RDD怎么理解? RDD 是 Spark 的灵魂,也称为弹性分布式数据集。一个 RDD 代表一个可以被分区的只读数据集。RDD 内部可以有许多分区(partitions),每个分区又拥有大量的记录(records)。Rdd的五个特征: 1. dependencies: 建立 RDD 的依赖关系,主要 RDD 之间是宽窄依赖的关系,具有窄依赖关系的 RDD 可以在同一个 stage 中进行计算。 2. partition: 一个 RDD 会有若干个分区,分区的大小决定了对这个 RDD 计算的粒度,每个 RDD 的分区的计算都在一个单独的任务中进行。 3. preferedlocations: 按照“移动数据不如移动计算”原则,在 Spark 进行任务调度的时候,优先将任务分配到数据块存储的位置。 4. compute: Spark 中的计算都是以分区为基本单位的,compute 函数只是对迭代器进行复合,并不保存单次计算的结果。 5. partitioner: 只存在于(K,V)类型的 RDD 中,非(K,V)类型的 partitioner 的值就是 None。 RDD 的算子主要分成2类,action 和 transformation。这里的算子概念,可以理解成就是对数据集的变换。action 会触发真正的作业提交,而 transformation 算子是不会立即触发作业提交的

Dream_Spark-----Spark 定制版:004~Spark Streaming事务处理彻底掌握

て烟熏妆下的殇ゞ 提交于 2020-02-26 22:56:41
Spark 定制版:004~Spark Streaming事务处理彻底掌握 本讲内容: a. Exactly Once b. 输出不重复 注:本讲内容基于 Spark 1.6.1版本(在2016年5月来说是Spark最新版本)讲解。 上节回顾: 上节课 通过案例透视了Spark Streaming Job 架构 和运行机,并结合源码进行了详细解说;同时也了解了Spark Streaming Job的容错机制,包括 Executor 与 Driver两方面的容错机制。 也就是说Job的事务处理,主要是在Executor 与 Driver两个应用中展开 开讲 首先,我们必须知道什么是事务及其一致性? 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使 数据库 从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持久性也称永久性(permanence),指一个事务一旦提交

入门Hadoop---安装ClouderaManager,CDH和Impala,Hue,oozie等服务

孤人 提交于 2020-02-26 19:04:13
目录 1.要求和支持的版本 1.1 支持的操作系统版本 1.2 硬件要求 1.3 支持的MySql版本 1.4 支持的JDKs 1.5 推荐使用的JDK 1.6CM和CDH兼容性 2.环境搭建 2.1安装Centos7.6 2.2 安装MySql 2.3 安装JDK8 2.4 系统环境准备 2.5 为CM配置Repository(就是rpm仓库) 2.6 安装Cloudera Manager服务 2.7 配置MySql 2.8 设置Cloudea Manager数据库 2.9 安装CDH和其它软件 1.要求和支持的版本 (PS:我使用的环境,都用加粗标识了。) 1.1 支持的操作系统版本 Operating System Version (bold=new) RHEL/CentOS/OL with RHCK kernel 7.6 , 7.5, 7.4, 7.3, 7.2,6.10, 6.9 , 6.8 Oracle Linux (OL) 7.4, 7.3, 7.2 (UEK default) SUSE Linux Enterprise Server SLES 12 SP4, 12 SP3, 12 SP2 Ubuntu Ubuntu 16.04 LTS (Xenial) ​ (系统版本要求) 1.2 硬件要求 Component Storage Notes Partition

在Apache Spark中使用UDF

允我心安 提交于 2020-02-26 03:06:01
用户自定义函数(UDF)是大多数SQL环境的一个关键特性,其主要用于扩展系统的内置功能。UDF允许开发人员通过抽象其低级语言实现在更高级语言(如SQL)中应用的新函数。Apache Spark也不例外,其为UDF与Spark SQL工作流集成提供了各种选项。 在本篇博文中,我们将回顾Python、Java和Scala上的Apache Spark UDF和UDAF(用户自定义的聚合函数)实现的简单示例。我们还将讨论重要的UDF API功能和集成点,包括各发行版本之间的当前可用性。总而言之,我们将介绍一些重要的性能注意事项,使您对应用程序中利用UDF的选择有所了解。 Spark SQL UDFs UDF转换了表中单个行的数值,为每行生成单个对应的输出值。例如,大多数的SQL环境都提供了一个UPPER函数,同时返回了一个大写版本的字符串以作为输入。 自定义函数可以在Spark SQL中定义和注册为UDF,并具有可用于SQL查询的关联别名。下面我们将为您介绍一个简单的例子,我们将定义一个UDF将以下JSON数据中的温度值从摄氏度(Celsius)转换为华氏度(Fahrenheit): 下面的示例代码使用SQL别名CTOF注册我们的转换UDF,然后使用它从SQL查询中转换每个城市的温度值。为简洁起见,省略了SQLContext对象和其他样板代码的创建,并在每个代码段下面提供了完整列表的链接。

在Apache Spark中使用UDF

我只是一个虾纸丫 提交于 2020-02-26 03:05:56
用户自定义函数(UDF)是大多数SQL环境的一个关键特性,其主要用于扩展系统的内置功能。UDF允许开发人员通过抽象其低级语言实现在更高级语言(如SQL)中应用的新函数。Apache Spark也不例外,其为UDF与Spark SQL工作流集成提供了各种选项。 在本篇博文中,我们将回顾Python、Java和Scala上的Apache Spark UDF和UDAF(用户自定义的聚合函数)实现的简单示例。我们还将讨论重要的UDF API功能和集成点,包括各发行版本之间的当前可用性。总而言之,我们将介绍一些重要的性能注意事项,使您对应用程序中利用UDF的选择有所了解。 Spark SQL UDFs UDF转换了表中单个行的数值,为每行生成单个对应的输出值。例如,大多数的SQL环境都提供了一个UPPER函数,同时返回了一个大写版本的字符串以作为输入。 自定义函数可以在Spark SQL中定义和注册为UDF,并具有可用于SQL查询的关联别名。下面我们将为您介绍一个简单的例子,我们将定义一个UDF将以下JSON数据中的温度值从摄氏度(Celsius)转换为华氏度(Fahrenheit): 下面的示例代码使用SQL别名CTOF注册我们的转换UDF,然后使用它从SQL查询中转换每个城市的温度值。为简洁起见,省略了SQLContext对象和其他样板代码的创建,并在每个代码段下面提供了完整列表的链接。

Spark学习四:Spark架构设计和RDD的stage划分

不羁的心 提交于 2020-02-26 00:32:29
文章目录 架构设计 Spark运行基本流程 RDD之间的依赖关系 stage的划分 RDD运行过程 参考网址 架构设计 学习完 Spark学习二:spark基础理论知识 ,我们可以对Spark的一些组件和术语应该有了基本的认识,下面介绍Spark的架构设计。本节内容主要参考 厦门大学林子雨老师的Spark课程 。非常感谢林子雨老师! 如下图所示。 Spark运行架构包括集群资源管理器( Cluster Manager )、运行作业任务的工作节点( Worker Node )、每个应用的任务控制节点( driver program )和每个工作节点上负责具体任务的执行进程( Executor )。其中,集群资源管理器可以是Spark自带的资源管理器,也可以是YARN或Mesos等资源管理框架。 与Hadoop MapReduce计算框架相比,Spark所采用的Executor有两个优点: 一是利用多线程来执行具体的任务(Hadoop MapReduce采用的是进程模型) (Spark和MapReduce的运行模式在 Spark学习二:spark基础理论知识 里也详细说明过),减少任务的启动开销; 二是Executor中有一个BlockManager存储模块 ,会将内存和磁盘共同作为存储设备,当需要多轮迭代计算时,可以将中间结果存储到这个存储模块里,下次需要时