spark mongo java_Spark Mongodb集成 - Python版
Spark是最近比较火的数据处理平台,相对于Hadoop的Mapreduce(MR),既具有运行速度的优势,又打破的Hadoop MR交互性差的局限,同时,其机器学习组件MLlib可以极大的满足数据处理过程中的算法需求。
Spark采用Scala语言编写,但同时支持Scala,Python与Java做为开发语言,甚至SparkR项目的出现某种程度上支持了R语言。
MongoDB做为NoSQL比较早的实现,其文档化的存储方式,更贴切数据的表达,其自身的BSON数据格式跟JSON非常相像,是做为半结构化数据存储的选择之一。
但是现有的Spark与MongoDB的集成,大部分都局限在Java和Scala版本上,Python的实现可以参考的文章实在有限,尤其对Spark中的数据存储到MongoDB方面,也有不少坑。
1、准备工作
首先,你需要准备好Spark跟MongoDB的环境,版本的话,Spark一定要1.3.0+,这个版本推出了Spark SQL集合起来用,可以达到开发效率跟运行效率的双向提高,选择1.3以上版本是因为之前的版本有这个Issue:SPARK-5361存在。MongoDB的话,推荐3.0,参考3.0的release note。
然后,你需要准备好相应的Library:1)mongo-java-driver,选择3.0.1版本,3.1版本没有试过,理论上应该也可行;2)mongo-hadoop,不要直接去下载1.3.2版本,该版本有BUG,需要编译。
2、修改mongo-hadoop库
1)git clone https://github.com/mongodb/mongo-hadoop
2) 修改MongoRecordWriter.java文件
修改的目的是为了可以直接让dict型的数据直接存在MongoDB中,而不是以{value:dict}的方式存储,修改参看下图,实在忍不住吐槽下简书默认的编辑器, 引用,代码都没有办法高亮 :(
MongoRecordWriter.java
3)编译
官方默认的编译命令是: ./gradlew jar,编译后的文件会放在core/build/libs目录下
mongo-hadoop-core-1.3.3-SNAPSHOT.jar
3、运行
前期工作准备好之后,使用pyspark --master local[6] --driver-class-path /mongo-java-driver-3.0.1.jar --jars /mongo-hadoop-core-1.3.3-SNAPSHOT.jar,/mongo-java-driver-3.0.1.jar 运行pyspark。注意,目前测试下来,仅支持local方式运行。
运行命令
4、总结
Scala做为Spark的编写语言,目前来看,对Spark支持的最好的还是Scala,Python在数据类型的转化上还是有着不少问题,比如:Calendar类型的支持的Issue现在依然是Open的状态,参考HADOOP-193,这只是众多问题的一个,花大量的时间去填坑,而不能专注在数据处理的业务流上,也是不得不面对的问题。
spark mongo java_Spark Mongodb集成 - Python版相关推荐
- python编写spark程序 视频_【Python版pyspark】Spark大数据基础入门视频课程
[注意:本课程只包含pyspark系列课程的基础入门部分] Python版本的pyspark是学习Python的人的福音,为广大的Python开发人员提供了一个使用Python调用Spark接口处理大 ...
- python计算gpa,Python版GPA计算器
最近在网申投简历时遇到一个需要计算GPA的问题,想起自己在上学时写的Excel公式版GPA计算器略显low,而且操作也比较复杂,于是一时兴起,写了个Python版的,在此分享给大家! 准备工作: 用户 ...
- Spark编程指南——Python版
摘要:对于1个年仅5岁的开源项目来说,其远谈不上尽善尽美,就比如文档相关.本文翻译自Spark Programming Guide,选取了其中使用Python的部分. 自开源之日至今,Spark已经5 ...
- Python ln_虚拟机中单机Spark (Python版)安装
Spark 安装成功界面 检验Spark(Python版)是否安装成功: # pyspark 楼主已经安装完虚拟机,以下操作为单机版Python版Spark安装步骤: *安装虚拟机 *安装java 检 ...
- 大数据Spark(python版)
大数据 大数据,Spark,Hadoop,python,pyspark 大数据Spark(python版) 前言(环境说明): 1.下载和安装 1)安装java JDK 2)安装Hadoop(伪分布式 ...
- spark编程基础python版 pdf_Spark编程基础Python版-第5章-Spark-SQL.pdf
<Spark编程基础(Python版)> 教材官网:/post/spark-python/ 温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字 第5章Spark SQL (P ...
- eclipse的python_eclipse中集成python开发环境
转载:https://www.cnblogs.com/mywood/p/7272487.html Eclipse简介 Eclipse是java开发最常用的IDE,功能强大,可以在MAC和Windos上 ...
- mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析
问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...
- 统计学习圣经!经典教材《统计学习导论》Python版
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 编辑:张倩,来源:机器之心 <统计学习导论>很经典,但习题用 ...
最新文章
- php 爬虫_Scrapy 爬虫完整案例-基础篇
- 告别AI模型黑盒子:可解释性将是数据科学的下一个“超能力”
- springboot集成swagger2测试接口
- NeHe教程Qt实现——lesson05
- java java.lang.Long详解之三 大显神通的位移运算
- FastReport人民币大写转换
- jQuery中的几个模块总结
- python做些什么项目_Python 的练手项目有哪些值得推荐
- 天池学习赛——街景字符编码识别(得分上0.93)
- python no such file or directory_Python3 no such file or directory
- Atitit 微服务的原理与实现方式 目录 第一章 什么是微服务?	1 第二章 核心要素	2 足够微小,	2 服务化 进程隔离	2 第三章 实现模式	2 多个app启动文件(推荐轻量级)	2 多项目
- 【Websocket编程】基于libwebsockets实现客户端数据通信
- 如何免费在线将pdf转换成jpg图片
- 虚幻引擎UE4加载GIS数据《数字孪生智慧城市》
- 打造数字化转型IT生态系统的IT管理方法:IT4IT一瞥
- crash日志学习(初步)
- VR全景为家装赋能,沉浸式体验家装设计效果
- jQuery搜索高亮显示
- ultraos win10启动盘_使用ultraiso软件制Win10专业版U盘系统盘制作安装教程
- 海思HI3516 MIPI屏幕调试笔记
热门文章
- 最全CSS各种布局详解
- linux ssh和scp,Linux SSH 与 SCP命令简述
- swiper.js使用心得
- django 打开的html css_Django分页完整示例
- code换取微信openid_微信授权登录开发的两种方式
- linux修改ip广播地址,Linux设置查看静态IP之ifconfig命令
- osgQt::GLWidget的坑
- OSG模拟鼠标事件影响操纵器
- linux 流量 脚本,linux 检测网络出入流量 当达到一定量时 自动执行另一个脚本。...
- java 字节码分析_手把手带你分析Java中的Class字节码文件