Pyspark DataFrame 保存到MongoDB 数据库

导入用到的 库 SparkSession

创建入口文件

Python
# -*- coding: utf-8 -*- """ @Time: 2018/9/13 @Author: songhao @微信公众号: zeropython @File: 0801.py """ from <span class="wp_keywordlink_affiliate"><a href="https://www.168seo.cn/tag/pyspark" title="View all posts in pyspark" target="_blank">pyspark</a></span>.sql import SparkSession my_spark = SparkSession \ .builder \ .appName("myApp") \ .config("spark.mongodb.input.uri", "mongodb://127.0.0.1/test.coll") \ .config("spark.mongodb.output.uri", "mongodb://127.0.0.1/test.collsss") \ .getOrCreate()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-
"""
@Time: 2018/9/13
@Author: songhao
@微信公众号: zeropython
@File: 0801.py
"""
from pyspark . sql import SparkSession
 
my_spark = SparkSession \
     . builder \
     . appName ( "myApp" ) \
     . config ( "spark.mongodb.input.uri" , "mongodb://127.0.0.1/test.coll" ) \
     . config ( "spark.mongodb.output.uri" , "mongodb://127.0.0.1/test.collsss" ) \
     . getOrCreate ( )
 

创建 简单的DataFrame

Python
people = my_spark.createDataFrame([("Bilbo Baggins", 50), ("Gandalf", 1000), ("Thorin", 195), ("Balin", 178), ("Kili", 77), ("Dwalin", 169), ("Oin", 167), ("Gloin", 158), ("Fili", 82), ("Bombur", None)], ["name", "age"])
1
2
3
people = my_spark . createDataFrame ( [ ( "Bilbo Baggins" ,    50 ) , ( "Gandalf" , 1000 ) , ( "Thorin" , 195 ) , ( "Balin" , 178 ) , ( "Kili" , 77 ) ,
   ( "Dwalin" , 169 ) , ( "Oin" , 167 ) , ( "Gloin" , 158 ) , ( "Fili" , 82 ) , ( "Bombur" , None ) ] , [ "name" , "age" ] )
 

保存到特定的数据库中

Python
people.write.format("com.mongodb.spark.sql.DefaultSource").mode("append").save()
1
2
people . write . format ( "com.mongodb.spark.sql.DefaultSource" ) . mode ( "append" ) . save ( )
 

保存到不同的数据库中

Python
people.write.format("com.mongodb.spark.sql.DefaultSource").mode("append").option("database", "people").option("collection", "contacts").save() people.write.format("com.mongodb.spark.sql.DefaultSource").mode("append").option("database", "people1").option("collection", "contacts1").save()
1
2
3
4
5
6
people . write . format ( "com.mongodb.spark.sql.DefaultSource" ) . mode ( "append" ) . option ( "database" ,
"people" ) . option ( "collection" , "contacts" ) . save ( )
 
people . write . format ( "com.mongodb.spark.sql.DefaultSource" ) . mode ( "append" ) . option ( "database" ,
"people1" ) . option ( "collection" , "contacts1" ) . save ( )
 



  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值