バッチ モードでの MongoDB への書込み (write)
Overview
MongoDB にデータを書き込むには、 Dataset<Row>
オブジェクトで write()
メソッドを呼び出します。 このメソッドはDataFrameWriter
オブジェクトを返します。このオブジェクトを使用して、バッチ書込み操作の形式やその他の構成設定を指定できます。
MongoDB に書き込むには、次の構成設定を指定する必要があります。
設定 | 説明 |
---|---|
dataFrame.write.format() | 基礎の出力データソースの形式を指定します。 MongoDB に書き込むには、 mongodb を使用します。 |
dataFrame.write.option() |
バッチ書込み構成オプションのリストについては、 バッチ書込み構成オプションのガイドを参照してください。 |
次の例では、 json
ファイルから Data Frame を作成し、MongoDB のpeople.contacts
コレクションに保存します。
Dataset<Row> dataFrame = spark.read().format("json") .load("example.json"); dataFrame.write().format("mongodb") .mode("overwrite") .option("database", "people") .option("collection", "contacts") .save();
Tip
DataFrame 型
DataFrame
は、Java API のクラスとして存在しません。 DataFrame を参照するには、 Dataset<Row>
を使用します。
MongoDB にデータを書き込むには、 DataFrame
オブジェクトでwrite
関数を呼び出します。 この関数はDataFrameWriter
オブジェクトを返します。このオブジェクトを使用して、バッチ書込み操作の形式やその他の構成設定を指定できます。
MongoDB に書き込むには、次の構成設定を指定する必要があります。
設定 | 説明 |
---|---|
dataFrame.write.format() | 基礎の出力データソースの形式を指定します。 MongoDB に書き込むには、 mongodb を使用します。 |
dataFrame.write.option() |
バッチ書込み構成オプションのリストについては、バッチ書込み構成オプションのガイドを参照してください。 |
次の例では、 SparkSession
オブジェクトのcreateDataFrame()
関数を使用して、名前と期限を含むタプルのリストと列名のリストからDataFrame
オブジェクトを作成します。 次に、このDataFrame
を MongoDB のpeople.contacts
コレクションに書き込みます。
dataFrame = spark.createDataFrame([("Bilbo Baggins", 50), ("Gandalf", 1000), ("Thorin", 195), ("Balin", 178), ("Kili", 77), ("Dwalin", 169), ("Oin", 167), ("Gloin", 158), ("Fili", 82), ("Bombur", None)], ["name", "age"]) dataFrame.write.format("mongodb") .mode("append") .option("database", "people") .option("collection", "contacts") .save()
MongoDB にデータを書き込むには、 DataFrame
オブジェクトでwrite()
メソッドを呼び出します。 このメソッドはDataFrameWriter
オブジェクトを返します。このオブジェクトを使用して、バッチ書込み操作の形式やその他の構成設定を指定できます。
MongoDB に書き込むには、次の構成設定を指定する必要があります。
設定 | 説明 |
---|---|
dataFrame.write.format() | 基礎の出力データソースの形式を指定します。 MongoDB に書き込むには、 mongodb を使用します。 |
dataFrame.write.option() |
バッチ書込み構成オプションのリストについては、バッチ書込み構成オプションのガイドを参照してください。 |
次の例では、 json
ファイルから Data Frame を作成し、MongoDB のpeople.contacts
コレクションに保存します。
val dataFrame = spark.read.format("json") .load("example.json") dataFrame.write.format("mongodb") .mode("overwrite") .option("database", "people") .option("collection", "contacts") .save()
警告
保存モード
MongoDB Spark Connector は次の保存モードをサポートしています。
append
overwrite
overwrite
書込みモードを指定すると、connector はターゲット コレクションを削除し、デフォルトのコレクション オプションを使用する新しいコレクションを作成します。 この動作は、次のコレクション タイプなど、デフォルト オプションを使用しないコレクションに影響を与える可能性があります。
シャーディングされたコレクション
デフォルト以外の照合順序を持つコレクション
時系列コレクション
保存モードの詳細については、 Spark SQL ガイド を参照してください。
重要
書込み操作にnull
値を持つフィールドが含まれている場合、コネクタはフィールド名とnull
値を MongoDB に書込みます。 この動作を変更するには、書込み構成プロパティignoreNullValues
を設定します。
コネクタの書込み (write) 動作の設定の詳細については、「書込み構成オプション 」を参照してください。
API ドキュメント
これらの例で使用されている型の詳細については、次の Apache Spark API ドキュメントを参照してください。