배치 모드로 MongoDB에 쓰기
개요
MongoDB 에 데이터를 쓰기 (write) 려면 Dataset<Row>
객체 에서 write()
메서드를 호출합니다. 이 메서드는 배치 쓰기 (write) 작업의 형식 및 기타 구성 설정을 지정하는 데 사용할 수 있는 DataFrameWriter
객체 를 반환합니다.
MongoDB 에 쓰기 (write) 려면 다음 구성 설정을 지정해야 합니다.
설정 | 설명 |
---|---|
dataFrame.write.format() | 기본 출력 데이터 소스 의 형식을 지정합니다. mongodb 을(를) 사용하여 MongoDB 에 쓰기 (write) . |
dataFrame.write.option() |
배치 쓰기 (write) 구성 옵션 목록은 일괄 쓰기 구성 옵션 가이드 를 참조하세요. |
다음 예시에서는 json
파일에서 DataFrame을 생성하여 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();
팁
DataFrame 유형
DataFrame
Java API 에서 클래스로 존재하지 않습니다. Dataset<Row>
를 사용하여 DataFrame을 참조합니다.
MongoDB에 데이터를 쓰려면 DataFrame
객체에서 write
함수를 호출합니다. 이 함수는 배치 쓰기 작업의 형식 및 기타 구성 설정을 지정하는 데 사용할 수 있는 DataFrameWriter
객체를 반환합니다.
MongoDB 에 쓰기 (write) 려면 다음 구성 설정을 지정해야 합니다.
설정 | 설명 |
---|---|
dataFrame.write.format() | 기본 출력 데이터 소스 의 형식을 지정합니다. mongodb 을(를) 사용하여 MongoDB 에 쓰기 (write) . |
dataFrame.write.option() |
다음 예제에서는 SparkSession
객체의 createDataFrame()
함수를 사용하여 이름과 연령이 포함된 튜플 목록과 열 이름 목록에서 DataFrame
객체를 만듭니다. 그런 다음 DataFrame
이 을 people.contacts
MongoDB의 collection에 씁니다.
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 에 쓰기 (write) 려면 다음 구성 설정을 지정해야 합니다.
설정 | 설명 |
---|---|
dataFrame.write.format() | 기본 출력 데이터 소스 의 형식을 지정합니다. mongodb 을(를) 사용하여 MongoDB 에 쓰기 (write) . |
dataFrame.write.option() |
다음 예시에서는 json
파일에서 DataFrame을 생성하여 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 는 대상 컬렉션을 삭제하고 기본 컬렉션 옵션을 사용하는 새 컬렉션을 만듭니다. 이 동작은 다음 컬렉션 유형과 같이 기본 옵션을 사용하지 않는 컬렉션에 영향을 줄 수 있습니다.
샤드 컬렉션
기본값이 아닌 데이터 정렬이 있는 컬렉션
time series 컬렉션
저장 모드에 학습 보려면 Spark SQL 가이드를 참조하세요.
중요
쓰기 (write) 작업에 null
값이 있는 필드 가 포함된 경우 connector 는 필드 이름과 null
값을 MongoDB 에 씁니다. 쓰기 (write) 구성 속성 ignoreNullValues
을(를) 설정하여 이 동작을 변경할 수 있습니다.
커넥터의 쓰기 (write) 동작 설정에 대한 자세한 내용은 쓰기 구성 옵션을 참조하세요.
API 문서
이 예시에 사용된 유형에 대해 자세히 알아보려면 다음 Apache Spark API 문서를 참조하세요.