sql >> Databasteknik >  >> NoSQL >> MongoDB

Det gick inte att hitta datakällan:com.mongodb.spark.sql.DefaultSource

Så här gjorde jag det i Jupyter-anteckningsboken:
1. Ladda ner jars från central eller något annat arkiv och placera dem i katalogen "jars":
mongo-spark-connector_2.11-2.4.0
mongo-java-driver-3.9.0
2. Skapa session och skriv/läs all data

from pyspark import SparkConf
from pyspark.sql import SparkSession
from pyspark.sql.functions import *
from pyspark.sql.types import *

working_directory = 'jars/*'

my_spark = SparkSession \
    .builder \
    .appName("myApp") \
    .config("spark.mongodb.input.uri=mongodb://127.0.0.1/test.myCollection") \
    .config("spark.mongodb.output.uri=mongodb://127.0.0.1/test.myCollection") \
    .config('spark.driver.extraClassPath', working_directory) \
    .getOrCreate()

people = my_spark.createDataFrame([("JULIA", 50), ("Gandalf", 1000), ("Thorin", 195), ("Balin", 178), ("Kili", 77),
                            ("Dwalin", 169), ("Oin", 167), ("Gloin", 158), ("Fili", 82), ("Bombur", 22)], ["name", "age"])

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

df = my_spark.read.format("com.mongodb.spark.sql.DefaultSource").load()
df.select('*').where(col("name") == "JULIA").show()

Som ett resultat kommer du att se detta:



  1. På EC2, varför behöver jag individuella EBS-volymer för journal, logg och data?

  2. Sätt in stor skiva i mongodb med mongo-skal

  3. Använd lean i mongoose med callback

  4. Hur optimerar man MongoDB-frågan med både $gt och $lte?