日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

spark mongo java_Spark Mongodb集成 - Python版

發布時間:2023/12/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。