sql >> データベース >  >> NoSQL >> MongoDB

データソースが見つかりませんでした:com.mongodb.spark.sql.DefaultSource

    これがJupyterノートブックでのやり方です:
    1。中央リポジトリまたはその他のリポジトリからjarをダウンロードし、「jar」というディレクトリに配置します。
    mongo-spark-connector_2.11-2.4.0
    mongo-java-driver-3.9.0
    2.2。セッションを作成し、データの書き込み/読み取り

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

    結果として、次のように表示されます。



    1. オブジェクト#<MongoClient>にはメソッド'open'がありません

    2. MongoDBは完全に一致する配列を検索しますが、順序は重要ではありません

    3. Node.jsを介してRedisデータベースに対してHGET/GETコマンドを発行するにはどうすればよいですか?

    4. socket.ioredisとメモリリーク