問題反饋
在使用中有任何問題,可以反饋給我,以下聯絡方式跟我交流
Author: Leo Wechat: Leo-sunhailin
E-mail: 379978424@qq.com
--- 目錄
專案環境 下載方式
小問題 解決辦法和過程
程式碼示例 問題反饋
---
專案環境
- 環境部署: 請參考右邊 -> 部署步驟
- 環境詳情:
- Spark版本: Apache Spark 2.2.0 with Hadoop2.7
- MongoDB版本: 3.4.9-with openSSL
- JDK版本: 1.8
- Python版本: 3.4.4
下載方式
- 1、官方MongoDB-Spark Connector
```Shell第一種方式
spark-shell --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0
第二種
pyspark --packages org.mongodb.spark:mongo-spark-connector_2.11:2.2.0
* 2、第三方的Connector
* 有點坑爹的專案[專案連結](https://github.com/mongodb/mongo-spark?jmp=hero)
* 專案發起者的官網打不開找不到對應的版本
* 0.12.x(具體x有哪些不知道...)
* 命令如下:
```Shell
spark-shell --packages com.stratio.datasource:spark-mongodb_2.11:0.13.0複製程式碼
小問題:
- 問題:公司的網路有毒,翻不出去外網(應該和公司設定的DNS有關係)
解決辦法和過程:
- 解決辦法:Teamviewer回家用Spark-shell下了MongoDB官方的解決方案的Jar包.(執行的是命令1)
- 偷懶可以下載下面的jar包,手動跳轉第四步
- Jar包下載連結 密碼:qkkp
- 1、Maven編譯後(下載的時候就會編譯的不需要手動),生成了兩個jar包
- 路徑預設在: C:/User/<使用者名稱>/.ivy2/
- 2、下載沒出錯之後在.ivy2檔案下會存在兩個資料夾caches,jars.
- 3、下載完之後開啟jars資料夾會有兩個jar包:
- org.mongodb.spark_mongo-spark-connector_2.11-2.2.0.jar
- org.mongodb_mongo-java-driver-3.4.2.jar
- 4、把兩個複製到Spark根目錄下的jars資料夾中.
程式碼示例:
# -*- coding: UTF-8 -*-
"""
Created on 2017年10月24日
@author: Leo
"""
import os
from pyspark.sql import SparkSession
os.environ['SPARK_HOME'] = "你的Spark根目錄"
os.environ['HADOOP_HOME'] = "你的Hadoop根目錄"
class PySparkMongoDB:
def __init__(self):
# 這個是uri的配置
# mongodb://<MongoDB地址:埠>/<資料庫名>.<集合名>
# 不指定埠就是預設27017
self.uri_conf = "mongodb://127.0.0.1/<資料庫名>.<集合名>"
# Connect MongoDB(通過SparkSession維護連線)
self.my_spark = SparkSession \
.builder \
.appName("myApp") \
.config("spark.mongodb.input.uri", self.uri_conf) \
.config("spark.mongodb.output.uri", self.uri_conf) \
.getOrCreate()
def read_mgo(self):
df = self.my_spark.read.format("com.mongodb.spark.sql.DefaultSource").load()
print(df.show())
if __name__ == '__main__':
mgo = PySparkMongoDB()
mgo.read_mgo()複製程式碼