本文是关于如何在机器学习实践中结合Spark和Python。边肖觉得很实用,所以分享给大家学习。希望你看完这篇文章能有所收获。让我们和边肖一起看看。
Apache Spark是处理和使用大数据应用最广泛的框架之一,Python是数据分析、机器学习等领域应用最广泛的编程语言之一。如果你想要更好的机器学习能力,为什么不把Spark和Python一起用呢?
在国外,Apache Spark开发者的平均年薪为11万美元。毫无疑问,Spark在这个行业得到了广泛的应用。Python也因其丰富的库集而被大多数数据科学家和分析师使用。两者融合并没有那么难。Spark是用Scala语言开发的,和Java非常相似。它将程序代码编译成JVM字节码,用于Spark大数据处理。为了集成Spark和Python,Apache Spark社区发布了PySpark。
Apache Spark是Apache软件基金会为实时处理开发的开源集群计算框架。Spark为编程整个集群提供了一个接口,具有隐式数据并行性和容错性。
以下是Apache Spark的一些特性,它们比其他框架有优势:
速度:比传统大规模数据处理框架快100倍。
强大的缓存:简单编程层提供强大的缓存和磁盘持久化功能。
部署:可以通过Mesos、Yarn或者Spark自己的集群管理器进行部署。
实时:内存计算,实时计算,低延迟。
多语种:这是框架最重要的特性之一,因为它可以用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设置内部服务并建立与sparkcontext执行环境的连接。
2.驱动程序中的Spark Context对象协调所有分布式进程,并允许资源分配。
3.集群管理器执行器,是带有逻辑的JVM进程。
4.sparkcontext对象将应用程序发送给执行器。
5.火花上下文在每个执行器中执行任务。
PySpark KDD用例
现在我们来看一个用例:数据来源是KDD‘99杯(国际知识发现与数据挖掘工具大赛,国内也有类似的大赛开放数据集,比如知乎)。我们在这里取一部分数据集,因为原始数据集太大了。
创建RDD:
现在我们可以用这个文件来创建我们的RDD。
he.yisu.com/upload/information/20200703/144/40541.png" alt="机器学习实践中如何将Spark与Python结合">
过滤
假设我们要计算我们在数据集中有多少正常的相互作用。,可以按如下过滤我们的raw_data RDD。
计数:
现在我们可以计算出新RDD中有多少元素。
输出:
制图:
在这种情况下,我们想要将数据文件作为CSV格式文件读取。我们可以通过对RDD中的每个元素应用lambda函数。如下所示,这里我们将使用map()和take()转换。
输出:
拆分:
现在,我们希望将RDD中的每个元素都用作键值对,其中键是标记(例如正常值),值是表示CSV格式文件中行的整个元素列表。 我们可以按如下进行,这里我们使用line.split()和map()。
输出:
收集:
使用collect()动作,将RDD所有元素存入内存。因此,使用大型RDD时必须小心使用。
输出:
当然,这比我们之前的任何操作花费的时间都要长。每个具有RDD片段的Spark工作节点都必须进行协调,以便检索其各部分内容,然后将所有内容集合到一起。
作为结合前面所有内容的最后一个例子,我们希望收集所有常规交互作为键值对。
输出:
以上就是机器学习实践中如何将Spark与Python结合,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/149950.html