Spark连接MongoDB之Scala
MongoDB Connector for Spark
  Spark Connector Scala Guide
spark-shell --jars "mongo-spark-connector_2.11-2.0.0.jar,mongo-hadoop-core-2.0.2.jar,mongo-java-driver-3.4.2.jar"
import org.apache.spark.sql.SparkSession
import com.mongodb.spark._
import com.mongodb.spark.config._
import org.bson.Document val spark = SparkSession.builder()
.master("local")
.appName("MongoSparkConnector")
.config("spark.some.config.option", "some-value")
.getOrCreate() val uri = "mongodb://172.1.1.1:27017" val userDF = spark.sql("""
select
uid,
name,
current_date() version
from test_table
limit 100
""").repartition(8) // Write to MongoDB
userDF.write.mode("overwrite").format("com.mongodb.spark.sql").options(
Map(
"uri" -> uri,
"database" -> "test",
"collection" -> "test_table")).save() // Read From MongoDB
val df = spark.read.format("com.mongodb.spark.sql").options(
Map(
"uri" -> uri,
"database" -> "test",
"collection" -> "test_table")).load() // 其他方式
userDF.write.mode("overwrite").format("com.mongodb.spark.sql").options(
Map(
"spark.mongodb.input.uri" -> uri,
"spark.mongodb.output.uri" -> uri,
"spark.mongodb.output.database" -> "test",
"spark.mongodb.output.collection" -> "test_table")).save() MongoSpark.save(
userDF.write.mode("overwrite").options(
Map(
"spark.mongodb.input.uri" -> uri,
"spark.mongodb.output.uri" -> uri,
"spark.mongodb.output.database" -> "test",
"spark.mongodb.output.collection" -> "test_table"))) MongoSpark.save(
userDF.write.mode("overwrite").options(
Map(
"uri" -> uri,
"database" -> "test",
"collection" -> "test_table"))) spark.stop()
Spark连接MongoDB之Scala的更多相关文章
- spark连接mongodb
		1.添加依赖 hadoop和mongodb的连接器 <dependency> <groupId>org.mongodb.mongo-hadoop</groupId> ... 
- 记录一次spark连接mysql遇到的问题
		版权声明:本文为博主原创文章,未经博主允许不得转载 在使用spark连接mysql的过程中报错了,错误如下 08:51:32.495 [main] ERROR - Error loading fact ... 
- spark SQL学习(spark连接 mysql)
		spark连接mysql(打jar包方式) package wujiadong_sparkSQL import java.util.Properties import org.apache.spark ... 
- spark SQL学习(spark连接hive)
		spark 读取hive中的数据 scala> import org.apache.spark.sql.hive.HiveContext import org.apache.spark.sql. ... 
- 【原创】大叔经验分享(55)spark连接kudu报错
		spark-2.4.2kudu-1.7.0 开始尝试 1)自己手工将jar加到classpath spark-2.4.2-bin-hadoop2.6+kudu-spark2_2.11-1.7.0-cd ... 
- nodejs连接mongodb的方法
		一. var express = require('express'); var mongodb = require('mongodb'); var app = express(); app.use( ... 
- Nodejs开发(2.连接MongoDB)
		一.先配置MongoDB Win10下下载那个安装版,zip版的会报却各种DLL,安装在你希望的路径,实在安装错了,就剪切过来也行(本例E:\mongodb). 然后是配置启动脚本,就是写一个bat文 ... 
- 在express中使用Mongoose连接MongoDB
		为何要学Mongoose? Mongoose是MongoDB的一个对象模型工具,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单. 0.安装 ... 
- java连接mongodb的一个奇葩问题及奇葩解决方式
		昨天在eclipse中编写代码,本来连接mongodb进行各项操作都是正常的,但是有一会儿突然之间就没法连接了,还一直抱错,错误如下: 信息: Cluster created with setting ... 
随机推荐
- delphi  button 实现下拉列表
			unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ... 
- .net core日志记录
			.net core日志记录 日志是必须的,目前采用log4net进行日志记录. 定义通用的日志记录方法 public static class Log4NetFunc { private static ... 
- pycharm 注册码/License server 2017年最新
			两种方法: 1.选License server激活,输入:http://idea.imsxm.com 2.2017年激活码 时效1年BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUc ... 
- 学习ReentrantLock
			1. 使用ReentrantLock import java.util.concurrent.locks.ReentrantLock; public class TestReentrantLock { ... 
- BI 系列随笔列表 (SSIS, SSRS, SSAS, MDX, SQL Server)
			微软 BI ETL 架构设计 如何在 ETL 项目中统一管理上百个 SSIS 包的日志和包配置框架 如何管理和记录 SSIS 各个 Task 的开始执行时间和结束时间以及 Task 中添加|删除|修改 ... 
- 实战UITableview深度优化
			演示项目下载地址:https://github.com/YYProgrammer/YYTableViewDemo 项目里的低性能版是常规写法实现的tableview,高性能版是做了相关优化后的tabl ... 
- Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx  \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCompc dtS420 \s2018 s4f doc homepc \s2018 s4 doc compc dtS44\(5 封私信 _ 44 条消息)WebSocket 有没有可能取代 AJAX
			Atitit s2018 s4 doc list dvchomepc dvccompc.docx .docx \s2018 s4 doc compc dtS44 \s2018 s4 doc dvcCo ... 
- atitit 如何才能保持基业长青,建立万年企业v2 q66.docx
			1. 价值观 1 2. 分权 民主化 扁平化管理 1 3. 剥离经济部门,,降低经济的重要性 .超越利润的追求 1 4. 构建愿景 1 5. 强大的团队文化 企业文化 宗教文化 .教派般的文化 1 1 ... 
- FFmpeg中的时间基(time_base), AV_TIME_BASE
			AV_TIME_BASE 经常在FFmpeg的代码中看到一个奇怪的单位 AV_TIME_BASE ,比如 AVFormatContext 结构体中就有这样一个字段: duration ,它在FFmpe ... 
- 基于vue-cli配置手淘的lib-flexible + rem,实现移动端自适应
			没接触过flexible的建议先看看大漠的这篇文章这样你才会知道长度为什么用rem,而字体要用px 安装flexible npm install lib-flexible --save 引入flexi ... 
