Spark 连接 mongodb 用python

按照官网教程
1
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("myApp") \
.config("spark.mongodb.input.uri", "mongodb://127.0.0.1/Spark-Test.Numbers") \
.config("spark.mongodb.output.uri", "mongodb://127.0.0.1/Spark-Test.Numbers") \
.getOrCreate()
df = spark.read.format("com.mongodb.spark.sql.DefaultSource").load()

结果报错Caused by: java.lang.ClassNotFoundException: com.mongodb.spark.sql.DefaultSource.DefaultSource

2
我看需要用--packages这个命令导入包
cmd>> pyspark --package org.mongodb.spark:mongo-spark-connector_2.11:2.2.0
报错:Exception in thread "main" java.lang.IllegalArgumentException: pyspark does not

3
完全按照官方来
cmd>>pyspark --conf "spark.mongodb.input.uri=mongodb://127.0.0.1/test.myCollection?readPreference=primaryPreferred"
--conf "spark.mongodb.output.uri=mongodb://127.0.0.1/test.myCollection"
--packages org.mongodb.spark:mongo-spark-connector_2.10:1.1.0
报错:'D:\SparkNew\spark\bin\pyspark2.cmd" --conf "spark.mongodb.input.uri' 不是内部或外部命令,
也不是可运行的程序或批处理文件。

不太明白我用的pyspark,怎么报错是pyspark2.cmd

那怎么才能跟mongodb连接呢,就是找不到DefaultSource.DefaultSource的事啊

pip install -U pyspark

http://blog.csdn.net/hellousb2010/article/details/53414349

mongodb是一种文档型数据库,作为一个适用于敏捷开发的数据库,mongodb的数据模式可以随着应用程序的发展而灵活地更新。但是mongodb适合一次查询的需求,对于统计、分析(尤其是在需要跨表、跨库的情况下)并不是太方便,我们可以用spark来处理mongodb数据

第三种方法把--conf 后面指令的引号去掉就行了,spark2.2.1亲测成功