sql >> Database >  >> NoSQL >> MongoDB

Kan gegevensbron niet vinden:com.mongodb.spark.sql.DefaultSource

Hier hoe ik het deed in Jupyter-notebook:
1. Download jars van de centrale of een andere repository en plaats ze in de map "jars":
mongo-spark-connector_2.11-2.4.0
mongo-java-driver-3.9.0
2. Sessie maken en gegevens schrijven/lezen

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()

Als resultaat ziet u dit:



  1. Mongodb krijgt documenten tussen datums (opgeslagen als string in het formaat 20-05-2019)

  2. Hoe krijg ik een datum om op te slaan als een datum in MongoDB in plaats van een Int64?

  3. Documenten zoeken op array van DBref's

  4. Draait mongoskin alleen met mongodb-versie 1.4 en ouder?