在本地运行pyspark

cs0*_*815 3 python apache-spark pyspark

我试着按照本书中的说明操作:

使用Python进行大规模机器学习

它使用VM映像运行涉及Oracle VM VirtualBox和Vagrant的Spark.我几乎设法让VM工作,但由于没有在BIOS中切换虚拟化的权限而被阻止(我没有密码,并且怀疑我的雇主的IT部门将允许我打开它).另见这里的讨论.

无论如何,我还有什么其他选择可以在本地使用sparkpy(在本地安装)?我的第一个目标是获取此Scala代码:

scala> val file = sc.textFile("C:\\war_and_peace.txt")
scala> val warsCount = file.filter(line => line.contains("war"))
scala> val peaceCount = file.filter(line => line.contains("peace"))
scala> warsCount.count()
res0: Long = 1218
scala> peaceCount.count()
res1: Long = 128
Run Code Online (Sandbox Code Playgroud)

在Python中运行.任何指针都将非常感激.

Grr*_*Grr 5

因此,您可以在Windows上使用python和scala shell设置Spark,但需要注意的是,根据我的经验,Windows上的性能不如osx和linux.如果你想在Windows上设置所有内容的路线,我不久前写了一些简短的说明,你可以在这里查看.我正在粘贴下面的文本,只是因为我曾经从该回购移动文件或链接因某些其他原因而中断.

下载并解压Spark

从apache下载最新版本的spark.请注意,为您选择的spark版本获取正确的Hadoop二进制文件至关重要.请参阅下面的Hadoop二进制文件部分.采用7拉链提取.

安装Java和Python

安装最新版本的64位Java.为所有用户安装Anaconda3 Python 3.5,64位(或您选择的其他版本).重启服务器.

测试Java和Python

打开命令行和类型java -version.如果安装正确,您将看到如下输出: java version "1.8.0_121" Java(TM) SE Runtime Environment (build 1.8.0_121-b13) Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode) 键入pythonpython --version.第一个将在显示版本信息后打开python shell.第二个将仅显示与此类似的版本信息: Python 3.5.2 :: Anaconda 4.2.0 (64-bit)

下载适用于Windows 64位的Hadoop二进制文件

您可能没有在Windows上安装Hadoop,但是火花将深入其核心内容以查找此文件以及可能的其他二进制文件.值得庆幸的是,Hadoop贡献者已经编译了这些,并且拥有一个包含Hadoop 2.6二进制文件的存储库.这些二进制文件适用于spark版本2.0.2,但不适用于2.1.0.要使用spark 2.1.0,请从此处下载二进制文件.

最好的策略是克隆repo并保持Hadoop文件夹对应于你的spark版本,并将hadoop-%version%文件夹添加到你的路径中HADOOP_HOME.

将Java和Spark添加到环境中

将路径添加到java和spark分别作为环境变量JAVA_HOME和SPARK_HOME.

测试pyspark

在命令行中,键入pyspark并观察输出.此时spark应该从python shell开始.

设置pyspark使用Jupyter笔记本

pyspark代码中存在使用交互式python shell和pyspark的说明,可以通过编辑器访问.要在启动pyspark之前使用Jupyter笔记本,请键入以下两个命令:

set PYSPARK_DRIVER_PYTHON=jupyter set PYSPARK_DRIVER_PYTHON_OPTS='notebook' 一旦设置了这些变量,pyspark将在Jupyter笔记本中启动,默认SparkContext初始化为sc,并且SparkSession初始化为spark.ProTip:打开http://127.0.0.1:4040查看spark UI,其中包含大量有关管道和已完成流程的有用信息.任何额外的笔记本电脑打开火花运行将在连续的端口,即4041,4042等...

问题是为您的spark版本获取正确版本的Hadoop二进制文件至关重要.其余的是确保正确配置您的路径和环境变量.

  • pyspark 代码中的说明链接会很好 (2认同)