All Products
Search
Document Center

E-MapReduce:Baca dari dan tulis ke MongoDB

Last Updated:Jun 21, 2026

Anda dapat menghubungkan EMR Serverless Spark ke database MongoDB menggunakan MongoDB Spark Connector resmi. Topik ini menjelaskan cara mengonfigurasi EMR Serverless Spark untuk membaca dari dan menulis ke MongoDB.

Prasyarat

  • Anda telah membuat ruang kerja EMR Serverless Spark. Untuk informasi selengkapnya, lihat Create a workspace.

  • Anda memiliki database MongoDB yang dikelola sendiri.

    Untuk informasi selengkapnya, lihat Getting Started with MongoDB.

Batasan

Operasi ini hanya didukung pada versi engine EMR Serverless Spark berikut:

  • esr-4.x: esr-4.1.0 atau yang lebih baru.

  • esr-3.x: esr-3.1.0 atau yang lebih baru.

  • esr-2.x: esr-2.5.0 atau yang lebih baru.

Prosedur

Langkah 1: Dapatkan file JAR MongoDB connector dan unggah ke OSS

  1. Berdasarkan versi Spark dan MongoDB Anda, unduh dependensi yang diperlukan dari Maven. Untuk informasi selengkapnya, lihat dokumentasi resmi MongoDB Spark Connector. Contoh ini menggunakan MongoDB 5.0.1, yang memerlukan paket JAR berikut:

    • mongo-spark-connector_2.12-10.4.1.jar

    • mongodb-driver-core-5.0.1.jar

    • mongodb-driver-sync-5.0.1.jar

    • bson-5.0.1.jar

  2. Unggah paket JAR yang telah diunduh ke Alibaba Cloud Object Storage Service (OSS). Untuk informasi selengkapnya, lihat simple upload.

Langkah 2: Buat koneksi jaringan

EMR Serverless Spark memerlukan koneksi jaringan ke database MongoDB Anda. Untuk informasi selengkapnya tentang koneksi jaringan, lihat Connect EMR Serverless Spark to other VPCs.

Penting

Saat mengonfigurasi aturan security group, atur Destination Port Range agar hanya membuka port yang diperlukan. Rentang port yang valid adalah 1 hingga 65535.

Langkah 3: Membaca dari koleksi MongoDB

  1. Buat session notebook. Untuk informasi selengkapnya, lihat Manage notebook sessions.

    Saat membuat session, pilih Engine Version yang didukung dan Normal Network Connection dari Langkah 2. Kemudian, pada bagian Spark Configuration, tambahkan parameter berikut untuk memuat MongoDB Spark Connector.

    spark.mongodb.write.connection.uri                mongodb://<mongodb_host>:27017
    spark.mongodb.read.connection.uri                 mongodb://<mongodb_host>:27017
    spark.emr.serverless.user.defined.jars            oss://<bucketname>/path/to/mongo-spark-connector_2.12-10.4.1.jar,oss://<bucketname>/path/to/mongodb-driver-core-5.0.1.jar,oss://<bucketname>/path/to/mongodb-driver-sync-5.0.1.jar,oss://<bucketname>/path/to/bson-5.0.1.jar

    Ganti nilai placeholder agar sesuai dengan lingkungan Anda.

    Parameter

    Deskripsi

    Contoh

    spark.mongodb.write.connection.uri

    URI koneksi untuk membaca dari dan menulis ke MongoDB.

    • <mongodb_host>: Alamat IP atau hostname layanan MongoDB Anda.

    • 27017: Port default untuk MongoDB.

    mongodb://192.168.x.x:27017

    spark.mongodb.read.connection.uri

    spark.emr.serverless.user.defined.jars

    Daftar dependensi eksternal untuk Spark yang dipisahkan koma.

    Paket JAR yang diunggah ke OSS. Contoh: oss://<yourBucketname>/spark/mongodb/mongo-spark-connector_2.12-10.4.1.jar.

  2. Pada halaman Development, buat tugas Python > notebook, lalu pilih session notebook yang telah Anda buat.

    Untuk informasi selengkapnya, lihat Manage notebook sessions.

  3. Salin kode berikut ke dalam sel notebook, modifikasi parameternya, lalu klik Run.

    df = spark.read \
        .format("mongodb") \
        .option("database", "<yourDatabase>") \
        .option("collection", "<yourCollection>") \
        .load()
    df.printSchema()
    df.show()
    

    Tabel berikut menjelaskan parameter tersebut.

    Parameter

    Deskripsi

    <yourDatabase>

    Nama database MongoDB Anda. Contoh: mongo_table.

    <yourCollection>

    Nama koleksi MongoDB Anda. Contoh: MongoCollection.

    Jika data berhasil dikembalikan, konfigurasi sudah benar. Output yang diharapkan ditampilkan di bawah ini:

    root
     |-- _id: string (nullable = true)
     |-- age: integer (nullable = true)
     |-- city: string (nullable = true)
     |-- name: string (nullable = true)
    +--------------------+---+-----------+-------+
    |                 _id|age|       city|   name|
    +--------------------+---+-----------+-------+
    |67e65cb60ccf7f94a...| 30|Los Angeles|    Bob|
    |67e65cb60ccf7f94a...| 35|    Chicago|Charlie|
    +--------------------+---+-----------+-------+

Langkah 4: Tulis ke koleksi MongoDB

Salin kode berikut ke dalam sel baru di notebook Anda, modifikasi parameternya, lalu klik Run.

from pyspark.sql import Row
data = [
    Row(name="Sam", age=25, city="New York"),
    Row(name="Charlie", age=35, city="Chicago")
]
df = spark.createDataFrame(data)
df.show()
df.write \
    .format("mongodb") \
    .option("database", "<yourDatabase>") \
    .option("collection", "<yourCollection>") \
    .mode("append") \
    .save()
              

Output berikut dari df.show() menampilkan data sebelum ditulis ke MongoDB. Eksekusi yang berhasil mengonfirmasi bahwa konfigurasi sudah benar dan data telah ditambahkan ke koleksi Anda.

+-------+---+--------+
|   name|age|    city|
+-------+---+--------+
|    Sam| 25|New York|
|Charlie| 35| Chicago|
+-------+---+--------+