spark

用机器学习构建模型,进行信用卡反欺诈预测

╄→гoц情女王★ 提交于 2021-02-09 20:04:35
本文通过利用信用卡的历史交易数据进行机器学习,构建信用卡反欺诈预测模型,提前发现客户信用卡被盗刷的事件。 1. 数据的下载和数据介绍 数据的下载地址为 https://www.kaggle.com/dalpozz/creditcardfraud/data 数据集是2013年9月使用信用卡进行交易的数据。此数据集显示两天内发生的交易,其中284,807笔交易中有492笔被盗刷。数据集非常不平衡,被盗刷占所有交易的0.172%。不幸的是,由于保密问题,我们无法提供原始数据。特征V1,V2,... V28是使用PCA获得的主要组件。特征Class是响应变量,如果发生被盗刷,则取值1,否则为0。 数据包含了Time,V1,V2,..V28,Amount,Class一共31列,其中Class是标签列,其中0代表没有被盗刷,1表示被盗刷。 2. 分析工具介绍 我们使用的工具是FEA-spk技术,它的底层基于最流行的大数据开发框架spark,对各种算子的操作都是基于DataFrame的,使用FEA-spk来做交互分析,不但非常简单易懂而且几乎和spark的功能一样强大,更重要的一点,它可以实现可视化,处理的数据规模更大,可以进行分布式的机器学习等 3. 案例的具体实现步骤如下 1. 数据预处理(Pre-processing Data) (1) 加载数据 查看一下数据的大小

序列化和反序列化

*爱你&永不变心* 提交于 2020-11-04 07:05:20
序列化是将对象转换为字节流,本质上可以理解为将链表的非连续空间的数据存储转化为连续空间存储的数组中。这样就可以将数组进行流式传输或者存储。相反,反序列化就是将字节流转换为对象。 序列化的主要目的: 1.进程间的通信:不同节点之间进行数据传输 2.数据持久化存储到磁盘:本地节点讲对象写入磁盘。 spark 中,序列化拥有重要地位。无论是内存或者磁盘中的RDD含有的对象存储,还是节点间的传输数据,都要执行序列化 来源: oschina 链接: https://my.oschina.net/u/2507413/blog/525843

spark RDD算子详解3

笑着哭i 提交于 2020-04-24 14:02:03
Actions算子 本质上在Actions算子中通过SparkContext执行提交作业的runJob操作,触发了RDD DAG的执行。 1.无输出 (1)foreach(f) 对RDD中的每个元素都应用f函数操作,不返回RDD和Array,而是返回Uint。 图3-25表示foreach算子通过用户自定义函数对每个数据项进行操作。本例中自定义函数为println(),控制台打印所有数据项。 2.HDFS saveAsTextFile (path, compressionCodecClass=None) 函数将数据输出,存储到HDFS的指定目录。 将RDD中的每个元素映射转变为(Null, x.toString),然后再将其写入HDFS。 图3-26中左侧的方框代表RDD分区,右侧方框代表HDFS的Block。通过函数将RDD的每个分区存储为HDFS中的一个Block。 3.Scala集合和数据类型 (1)collect() collect将分布式的RDD返回为一个单机的scala Array数组。在这个数组上运用scala的函数式操作。 图3-28中的左侧方框代表RDD分区,右侧方框代表单机内存中的数组。通过函数操作,将结果返回到Driver程序所在的节点,以数组形式存储。 (2)collectAsMap() collectAsMap对(K, V

iObjects for Spark- Docker安装攻略

给你一囗甜甜゛ 提交于 2020-04-24 04:09:39
iObjects for Spark时空大数据分析引擎可以帮助使用者进行高效的时空大数据分析,它既可以作为Apache Spark项目在时空数据领域的扩展模块,为软件开发人员服务,也可以作为一个开箱即用的时空大数据分析工具包,为数据分析人员服务。 iObjects for Spark时空大数据分析引擎支持基于虚拟机或Docker的快速部署,从而可以在云计算基础设施中统一管理和按需运行。在【 iObjects for Spark-时空大数据分析引擎 】中介绍了iObjects for Spark的安装和使用方法,这里我们将其安装到Docker中,创建自己的Docker镜像,从而可以在分布式环境中快速部署。 1. 安装支持环境 1.1 安装Docker容器支持环境 我用的Mac OS X,现在的Docker已经原生支持了,不用像以前要安装VirtualBox,再使用Vagrant了。 到这里 http://www.docker.io 下载相应的版本,然后运行安装程序,就可以了。 如果使用Ubuntu,建议使用 http://get.docker.io 下载的脚本进行安装,官方的安装方法貌似与Ubuntu内置的lxd有冲突,经常出问题。方法如下: wget http://get.docker.io -O docker-setup.sh sudo chmod +x docker-setup

【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第四步)(4)

和自甴很熟 提交于 2020-04-15 18:26:02
【推荐阅读】微服务还能火多久?>>> 此时重启IDEA: 此时重启IDEA: 重启后进入如下界面: Step 4 :在IDEA中编写Scala代码: 首先在进入在我们前一步的进入界面中选择“Create New Project”: 此时选在左侧列表中的“Scala”选项: 为了方便以后的开发工作,我们选择右侧的“SBT”选项: 点击“Next”进入下一步,设置Scala工程的名称和目录: 点击“Finish”完成工程的创建: 由于我们在前面选择了“SBT”选择,所以IDEA此时智能的帮助我们构建SBT工具: 我们点击工程名称“HelloScala”: IDEA自动完成SBT工具的安装需要一段时间,家林这里花了大约5分钟的时间,SBT好后SBT会自动帮我们建立好一些目录: 此时右击src下的main下的scala在弹出的“New”下选择“Scala Class” 输入文件名称: 把Kinde选择为“Object”: 点击“OK”完成: 来源: oschina 链接: https://my.oschina.net/u/1791057/blog/316982

Spark Eclipse 开发环境搭建

丶灬走出姿态 提交于 2020-04-08 06:55:34
Spark Eclipse 开发环境搭建 1 安装Spark环境 首先下载与集群 Hadoop 版本对应的 Spark 编译好的版本,解压缩到指定位置,注意用户权限 进入解压缩之后的 SPARK_HOME 目录 配置 /etc/profile 或者 ~/.bashrc 中配置 SPARK_HOME cd $SPARK_HOME/conf cp spark-env.sh.template spark-env.sh vim spark-env.sh export SCALA_HOME=/home/hadoop/cluster/scala-2.10.5 export JAVA_HOME=/home/hadoop/cluster/jdk1.7.0_79 export HADOOP_HOME=/home/hadoop/cluster/hadoop-2.6.0 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop #注意这个地方一定要指定为IP,否则下面的eclipse去连接的时候会报: #All masters are unresponsive! Giving up. 这个错误的。 SPARK_MASTER_IP=10.16.112.121 SPARK_LOCAL_DIRS=/home/hadoop/cluster/spark-1.4.0-bin

Spark 是什么?

回眸只為那壹抹淺笑 提交于 2020-04-07 07:15:05
什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。其架构如下图所示: Spark与Hadoop的对比 Spark的中间数据放到内存中,对于迭代运算效率更高。 Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。 Spark比Hadoop更通用 Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union, join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。 这些多种多样的数据集操作类型,给给开发上层应用的用户提供了方便

【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第四步)(1)

守給你的承諾、 提交于 2020-04-07 05:50:04
第一步:通过Spark的shell测试Spark的工作 Step1: 启动Spark集群,这一点在第三讲讲的极为细致,启动后的WebUI如下: Step2: 启动Spark Shell: 此时可以通过如下Web控制台查看shell的情况: Step3: 把Spark安装目录“README.md”拷贝到HDFS系统上 在Master节点上新启动一个命令终端,并进入到Spark安装目录下: 我们把文件拷贝到HDFS的root文件夹下: 此时,我们观察一下Web控制台,会发现该文件已经成功上传到HDFS上: Step4: 在Spark shell之下操作编写代码,操作我们上传的“README.md”: 首先,我们看一下在Shell环境下的“sc”这个自动帮助我们生产的环境变量: 可以看出sc就是SparkContext的实例,这是在启动Spark Shell的时候系统帮助我们自动生成的,SparkContext是把代码提交到集群或者本地的通道,我们编写Spark代码,无论是要运行本地还是集群都必须有SparkContext的实例。 接下来,我们读取“README.md”这个文件: 我们把读取的内容保存给了file这个变量,其实file是一个MappedRDD,在Spark的代码编写中,一切都是基于RDD操作的; 再接下来,我们从读取的文件中过滤出所有的“Spark”这个词

Spark数据挖掘-数据标准化

梦想与她 提交于 2020-04-07 01:25:11
Spark数据挖掘-数据标准化 1 前言 特征数据标准化指的是对训练样本通过利用每一列的统计量将特征列转换为0均值单位方差的数据。 这是非常通用的数据预处理步骤。 例如:RBF核的支持向量机或者基于L1和L2正则化的线性模型在数据标准化之后效果会更好。 数据标准化能够改进优化过程中数据收敛的速度,也能防止一些方差过大的变量特征对模型训练 产生过大的影响。 如何对数据标准化呢?公式也非常简单:新的列 = (老的列每一个值 - 老的列平均值) / (老的列标准差) 2 数据准备 在标准化之前,Spark必须知道每一列的平均值,方差,具体怎么知道呢? 想法很简单,首先给 Spark的 StandardScaler 一批数据,这批数据以 org.apache.spark.mllib.feature.Vector 的形式提供给 StandardScaler。StandardScaler 对输入的数据进行 fit 即计算每一列的平均值,方差。 调度代码如下: import org.apache.spark.SparkContext._ import org.apache.spark.mllib.feature.StandardScaler import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib

Spark2.x与ElasticSearch的完美结合

≯℡__Kan透↙ 提交于 2020-04-07 00:48:50
ElasticSearch(简称ES)是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RestFul web接口。ElasticSearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便的目地,当前在各大公司使用非常普遍。而Spark是基于分布式内存的高性能计算框架,用来处理大量的数据。本篇文章,我将与大家探讨如何用Spark从ES中加载数据,并将数据保存到ES里面。 1. FEA-spk集成ElasticSearch FEA-spk技术,它的底层基于最流行的大数据开发框架Spark,对各种算子的操作都是基于DataFrame的。使用FEA-spk来做交互分析,不但非常简单易懂,而且几乎和Spark的功能一样强大,更重要的一点是,它可以实现可视化,处理的数据规模更大,可以进行分布式的机器学习等。 Spark2.x与ElasticSearch的完美结合,大大丰富了FEA-spk的业务处理能力。 2. FEA处理ElasticSearch的原语实现 (1) 创建spk的连接 (2) 创建ElasticSearch的连接 (3) 加载数据到ES中 数据的格式如下表所示 可以看到数据有一亿多条,73个字段,数据量还是比较大的。 (4