Introduction
這是系列文章的第二篇,主要解釋當 PySp① ark 接到 Kafka 資料運算後,串接到 MongoDB 的這一段。
- 在 mac 上建立 Python 的 Kafka 與 Spark 環境
- 讓 Spark 接上 MongoDB 儲存資料 <- 本篇
- Kafka 串接 Twitter Streaming API
兩種做法
接續著前一篇的教學,我們已經可以在 PySpark 中,計算出 Word - Count 的資料。接下來,我們試圖將資料寫入資料庫。我們使用內建的 foreachRDD 操作,它允許將 RDD 的資料取出操作,通常用來導入外部。
1 | ... |
可以採用兩種方法接上 MongoDB:
① PyMongo
可以使用 PyMongo 套件的方法,簡單粗暴:
1 | from pymongo import MongoClient |
② PySpark Connector
也可以搭配 PySpark Connector 的方式來處理:
1 | from pyspark.sql import SQLContext |
執行時要載入對應的 packgae:
1 | $ spark-submit --jars spark-streaming-kafka-0-8-assembly_2.11-2.1.0.jar --packages org.mongodb.spark:mongo-spark-connector_2.11:2.4.0 costomer-pyspark-mongo.py |
小結
本系列預計會有三篇文章,把一個串流資料從來源到資料庫的過程走過一次:
- 在 mac 上建立 Python 的 Kafka 與 Spark 環境
- 讓 Spark 接上 MongoDB 儲存資料 <- 本篇
- Kafka 串接 Twitter Streaming API
Reference
[1] MongoDB和数据流:使用MongoDB作为Kafka消费者
[2] MongoDB+Spark 完整的大數據方案
License
本著作由 Chang, Wei-Yaun (v123582) 製作,
以創用CC 姓名標示-相同方式分享 3.0 Unported授權條款釋出。