机器学习 - pycharm, pyspark, spark集成篇
AS WE ALL KNOW,学机器学习的一般都是从python+sklearn开始学,适用于数据量不大的场景(这里就别计较“不大”具体指标是啥了,哈哈)
数据量大了,就需要用到其他技术了,如:spark, tensorflow,当然也有其他技术,此处略过一坨字...
先来看看如何让这3个集成起来吧(WINDOWS环境):pycharm(python开发环境), pyspark.cmd(REPL命令行接口), spark(spark驱动、MASTER等)
download Anaconda, latest version, which 64bit support for windows, 这里必须安装64位版本的Anaconda,因为后面tensorflow只支持64位的
https://www.continuum.io/downloads/

安装Anaconda,都是默认选项就行
dowload pycharm from jetbrain site, and install (please do it by yourself),这个很简单,直接略过
接下来是下载spark,我下的是最新版2.1.0的 http://spark.apache.org/downloads.html
解压缩后把它复制到一个容易找的目录,我这是C:\spark-2.1.0-bin-hadoop2.7
这个时候如果直接双击bin下的spark-shell.cmd文件的话是会报错的,主要原因是没有winutils.exe这东西(用来在windows环境下模拟文件操作的),因此还需要做几个小步骤才能正常启动
1. 设置一个假的hadoop目录,在这个目录的bin下放刚才说的那个winutils.exe文件(需要自己创建bin目录)
2. 设置环境变量HADOOP_HOME,值为这个假的hadoop目录
3. 拷贝winutils.exe到这个bin里,下载
OK,这时可以双击spark-shell.cmd了,如下:

HOHO, ==,==,我们不是要搞PYTHON环境嘛,怎么搞scala了,别急,先搞scala是因为先要把基本的给走通,再去搞python环境的接口。
python接口的REPL是这个文件,pyspark.cmd,双击,也报错...
别急,这里是因为python版本问题,anaconda最新版的python解释器版本是3.6.1,这个版本的spark不支持,需要降低版本 到3.5
卸载python? 不用,用anaconda的环境切换就行了
1. 先创建一个新的开发环境: conda create -n my_new_env_python35
2. 激活这个新的开发环境: activate my_new_env_python35
3. 在这个新的开发环境中安装python 3.5: conda install python=3.5
这时python3.5版本的解释器就算是安装完成了,默认目录在C:\ProgramData\Anaconda3\envs\my_new_env_python35\python.exe
然后就是需要把spark的python支持包复制到相应的路径中了,从下图1复制到my_new_env_python35环境的Lib\site-packages目录下

接下来需要把python默认版本改成python3.5,需要修改PATH路径,把python3.5的路径放在第一个查找路径下就行了
然后就开始整pycharm开发环境了。
首先肯定是新建一个python项目了,然后改设置,用来指定python解释器的路径,菜单:File-->Settings

接着设置运行时候的配置参数


漏了python调用pyspark的代码了,代码如下:
import sys
from operator import add from pyspark import SparkContext if __name__ == "__main__":
sc = SparkContext(appName="PythonWordCount")
lines = sc.textFile('words.txt')
count=lines.count()
print(count)
counts = lines.flatMap(lambda x: x.split(' ')) \
.map(lambda x: (x, 1)) \
.reduceByKey(add)
output = counts.collect()
for (word, count) in output:
print("%s: %i" % (word, count)) sc.stop()
至此,python环境算是搞定了。

机器学习 - pycharm, pyspark, spark集成篇的更多相关文章
- 机器学习 - 开发环境安装pycharm + pyspark + spark集成篇
AS WE ALL KNOW,学机器学习的一般都是从python+sklearn开始学,适用于数据量不大的场景(这里就别计较“不大”具体指标是啥了,哈哈) 数据量大了,就需要用到其他技术了,如:spa ...
- PyCharm搭建Spark开发环境 + 第一个pyspark程序
一, PyCharm搭建Spark开发环境 Windows7, Java 1.8.0_74, Scala 2.12.6, Spark 2.2.1, Hadoop 2.7.6 通常情况下,Spark开发 ...
- Spark:利用Eclipse构建Spark集成开发环境
前一篇文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上 ...
- spark2.2.1安装、pycharm连接spark配置
一.单机版本Spark安装 Win10下安装Spark2.2.1 1. 工具准备 JDK 8u161 with NetBeans 8.2: http://www.oracle.com/technetw ...
- spark集成hive遭遇mysql check失败的问题
问题: spark集成hive,启动spark-shell或者spark-sql的时候,报错: INFO MetaStoreDirectSql: MySQL check failed, assumin ...
- 用好lua+unity,让性能飞起来——luajit集成篇/平台相关篇
luajit集成篇 大家都知道luajit比原生lua快,快在jit这三个字上. 但实际情况是,luajit的行为十分复杂.尤其jit并不是一个简单的把代码翻译成机器码的机制,背后有很多会影响性能的因 ...
- 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
持续集成篇_08_Hudson持续集成服务器的使用(自动化编译.分析.打包.部署) 1.创建任务 svn用户验证 验证通过 *****五颗*表示每分钟检查svn路径是否有变更,有变更就会重新构建,相当 ...
- 最全Pycharm教程(11)——Pycharm调试器之断点篇
最全Pycharm教程(1)--定制外观 最全Pycharm教程(2)--代码风格 最全Pycharm教程(3)--代码的调试.执行 最全Pycharm教程(4)--有关Python解释器的相关配置 ...
- 【机器学习速成宝典】模型篇02线性回归【LR】(Python版)
目录 什么是线性回归 最小二乘法 一元线性回归 多元线性回归 什么是规范化 Python代码(sklearn库) 什么是线性回归(Linear regression) 引例 假设某地区租房价格只与房屋 ...
随机推荐
- Android Studio中.9.png文件出错问题
昨天使用别人的.9.png图片放在自己的android studio工程下使用,出现如下错误: :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DA ...
- java中读取特殊文件的类型
java中读取特殊文件的类型: 第一种方法(字符拼接读取): public static String getType(String s){ String s1=s.substring(s.index ...
- Python从入门到放弃之迭代器
迭代器是Python2.1中新加入的接口(PEP 234),说明如下: The iterator provides a 'get next value' operation that produces ...
- SimpleDateFormat的线程安全问题与解决方案
SimpleDateFormat 是 Java 中一个常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题. 因为 DateFormat 和 Simple ...
- 如何用PHP做到页面注册审核
用户注册后就有该条用户记录,你对用户表设一个"审核状态"字段,默认值设为"未审核",然后你写几句审核代码做成一个功能,按照你们的意愿若审核通过你把审核状态改为& ...
- JavaScript的for循环中嵌套一个点击事件为何点击一次弹出多个相同的值
先看下面一段代码: for(var i=0; i<10; i++) { $('#ul').bind('click', function() { alert(i) }) } 对于这段代码,当点击I ...
- 简单说说NoHTTP
学习NoHttp的原因是由于公司之前做的产品使用的网络请求框架一直都是Volley(为什么使用Volley就不用多说了,最起码是谷歌开发团队自己搞的,总感觉权威一些),可是自从android6.0推出 ...
- perl 之eval
eval是个表达式,语句末尾有一个分号, 发现在它的监视范围内出现致命错误,会立即停止运行整个块,退出后继续运行其 余的代码 eval的返回值就是语句块最后一条表达式的执行结果 eval非正常 ...
- 成为一名合格的ERP实施顾问应该具备哪些修为
要想成为一个合格ERP实施顾问,究竟需要点什么素质.请注意,这里的素质与技能是两码事,素质特别强调的是某种修养,技能可以速成,修养必须积累沉淀. 快速切入客户业务的能力 作为一个合格的ERP实施人员, ...
- iOS热更新技术被苹果官方警告?涉及到RN、Weex、JSPatch!!!
今天一早,不少iOS开发群都炸窝了,原因是部分iOS开发者收到了苹果的警告邮件: 有开发者质疑可能是项目中使用了JSPatch.weex以及ReactNative等热更新技术.对于修复bug提交审核的 ...