编辑推荐:

本文来自搜狐,本文主要通过介绍了Apache Spark的一些特性,如何将Spark与Python结合。

在国外,Apache Spark开发人员的平均年薪为110,000美元。毫无疑问,Spark在这个行业中被广泛使用。由于其丰富的库集,Python也被大多数数据科学家和分析专家使用。二者集成也并没有那么困难,Spark用Scala语言开发,这种语言与Java非常相似。它将程序代码编译为用于Spark大数据处理的JVM字节码。为了集成Spark和Python,Apache

Spark社区发布了PySpark。

Apache Spark是Apache Software Foundation开发的用于实时处理的开源集群计算框架。Spark提供了一个接口,用于编程具有隐式数据并行和容错功能的整个集群。

下面是Apache Spark的一些特性,它比其他框架更具优势:

・速度:比传统的大型数据处理框架快100倍。

・强大的缓存:简单的编程层提供强大的缓存和磁盘持久性功能。

・部署:可以通过Mesos、Yarn或Spark自己的集群管理器进行部署。

・实时:内存计算,实时计算且低延迟。

・Polyglot:这是该框架最重要的特性之一,因为它可以在Scala,Java,Python和R中编程。

虽然Spark是在Scala中设计的,但它的速度比Python快10倍,但只有当使用的内核数量少时,Scala才会体现出速度优势。由于现在大多数分析和处理都需要大量内核,因此Scala的性能优势并不大。

对于程序员来说,由于其语法和标准库丰富,Python相对来说更容易学习。而且,它是一种动态类型语言,这意味着RDD可以保存多种类型的对象。

尽管Scala拥有SparkMLlib,但它没有足够的库和工具来实现机器学习和NLP。此外,Scala

缺乏数据可视化。

使用Python设置Spark(PySpark)

首先要下载Spark并安装,一旦你解压缩了spark文件,安装并将其添加到 .bashrc文件路径中,你需要输入source

.bashrc

要打开PySpark shell,需要输入命令./bin/pyspark

PySpark SparkContext和数据流

用Python来连接Spark,可以使用RD4s并通过库Py4j来实现。PySpark Shell将Python

API链接到Spark Core并初始化Spark Context。SparkContext是Spark应用程序的核心。

1.Spark Context设置内部服务并建立到Spark执行环境的连接。

2.驱动程序中的Spark Context对象协调所有分布式进程并允许进行资源分配。

3.集群管理器执行程序,它们是具有逻辑的JVM进程。

4.Spark Context对象将应用程序发送给执行者。

5.Spark Context在每个执行器中执行任务。

PySpark KDD用例

现在让我们来看一个用例:数据来源为KDD'99 Cup(国际知识发现和数据挖掘工具竞赛,国内也有类似的竞赛开放数据集,比如知乎)。这里我们将取数据集的一部分,因为原始数据集太大。

创建RDD:

现在我们可以使用这个文件来创建我们的RDD。

过滤

假设我们要计算我们在数据集中有多少正常的相互作用。,可以按如下过滤我们的raw_data RDD。

计数:

现在我们可以计算出新RDD中有多少元素。

输出:

制图:

在这种情况下,我们想要将数据文件作为CSV格式文件读取。我们可以通过对RDD中的每个元素应用lambda函数。如下所示,这里我们将使用map()和take()转换。

输出:

拆分:

现在,我们希望将RDD中的每个元素都用作键值对,其中键是标记(例如正常值),值是表示CSV格式文件中行的整个元素列表。

我们可以按如下进行,这里我们使用line.split()和map()。

输出:

收集:

使用collect()动作,将RDD所有元素存入内存。因此,使用大型RDD时必须小心使用。

输出:

当然,这比我们之前的任何操作花费的时间都要长。每个具有RDD片段的Spark工作节点都必须进行协调,以便检索其各部分内容,然后将所有内容集合到一起。

作为结合前面所有内容的最后一个例子,我们希望收集所有常规交互作为键值对。

python与excel结合能做什么-机器学习实践:如何将Spark与Python结合相关推荐

  1. python与excel结合能做什么-Python网络爬虫与文本数据分析

    原标题:Python网络爬虫与文本数据分析 课程介绍 在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而 ...

  2. python与excel结合能做什么-openpyxl怎样按行和按列读取excel

    相信经过openpyxl基础知识的学习后,一些简单操作已经难不倒大家了.按行和按列读取excel又该怎么操作呢,今天小编就结合案例为大家讲解. openpyxl是python操作excel文件的一个库 ...

  3. 用python在excel中做批量计算(包括单元格为空值时的处理情况)

    现有如下某城市的2000-2017年人口和GDP数据的excel文件,需要计算其中人均GDP这一列的指标结果. 虽然这个工作在excel中直接下拉公式即可完成,但如果有50个城市的该种数据,显然下拉公 ...

  4. python可以开发驱动吗_Python机器学习实践:测试驱动的开发方法

    Python机器学习实践:测试驱动的开发方法 作者:(美)马修·柯克(Matthew Kirk) 著 出版日期:2017年10月 文件大小:30.91M 支持设备: ¥40.00在线试读 适用客户端: ...

  5. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  6. 用python处理excel数据做函数_如何使用python通过函数式编程完成excel中的数据处理及分析工作...

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  7. python学好了可以做什么菜_你是怎么学好Python的?

    一. 首先,Excel在入门基础知识.上手解决实际工作问题.深化技能实战方面比Python更容易: 其次,在对Excel已经很熟悉的情况下,我们知道Excel的每种功能的背后都是一行行代码,这一行行代 ...

  8. python打开excel执行vba代码_“Python替代Excel Vba”系列(终):vba中调用Python

    请关注本号,后续会有更多相关教程. 系列文章 学Python还不会处理Excel数据?带你用pandas玩转各种数据处理"Python替代Excel Vba"系列(二):panda ...

  9. python读取excel文件代码封装_12行代码教会你用python读excel文件提取数据生成条形码...

    12 行代码教会你用 python 读 excel 文件,提取数据,生成 条形码 一.需求分析条形码应用广泛,尤其是人事.财务和库 管等等岗位,常需根据 excel 文件成批生成条码,如果是经 常性天 ...

最新文章

  1. java弹出微信扫一扫_JAVA实现调用微信js-sdk扫一扫
  2. 老虎Sitemap生成器 0.2
  3. 64位x86-64处理器架构
  4. 巧断梯度:单个loss实现GAN模型(附开源代码)
  5. 解决Qt5 Creator无法切换输入法(fcitx),Ubuntu中不能使用搜狗输入法录入汉字问题...
  6. Java设计模式教程
  7. linux 查看java cpu_Linux查看CPU和内存使用情况
  8. matlab createtask,Matlab批量与createjob
  9. 电商库存设计mysql redis_基于redis实现的扣减库存
  10. git 第二次提交_win10 将本地项目上传到github (第一次+再次上传)
  11. three.js 下载安装、开发环境
  12. C++命名空间和缺省参数的概念
  13. call、apply和bind的用法与说明
  14. 图解Java设计模式
  15. 双边滤波(Bilateral Filtering)
  16. Unity资源加载简析(二)AssetsBundle
  17. 一个非常非常非常简单的SpringBoot小项目by hazy
  18. iOS https 自制证书 单向 双向 验证,以及服务器(Nginx)配置
  19. java选填_java-选择填空题库
  20. 名侦探柯南之零的执行人

热门文章

  1. 如何完美隐藏Disposable的存储和销毁过程(一)
  2. 趣谈网络协议笔记-零
  3. DNS tunnel的原理及实战
  4. parquet文件格式——本质上是将多个rows作为一个chunk,同一个chunk里每一个单独的column使用列存储格式,这样获取某一row数据时候不需要跨机器获取...
  5. 2015年各银行无抵押信用贷款利率及额度是多少?
  6. nginx 只允许/不允许 其他域名直接访问
  7. git 回退版本并强制提交
  8. spring boot项目之mybatis注解方式的使用
  9. Rsync文件同步服务
  10. Android开发技术周报 Issue#20