2 억 3 천 4 백만 레코드로 Spark에서 MongoDB의 모음을 읽으려고합니다. 1 필드 만 원한다.Error : com.mongodb.MongoCursorNotFoundException : MongoDB에서 Spark로 읽는 중
case class Linkedin_Profile(experience : Array[Experience])
case class Experience(company : String)
val rdd = MongoSpark.load(sc, ReadConfig(Map("uri" -> mongo_uri_linkedin)))
val company_DS = rdd.toDS[Linkedin_Profile]()
val count_udf = udf((x: scala.collection.mutable.WrappedArray[String]) => {x.filter(_ != null).groupBy(identity).mapValues(_.size)})
val company_ColCount = company_DS.select(explode(count_udf($"experience.company")))
comp_rdd.saveAsTextFile("/dbfs/FileStore/chandan/intermediate_count_results.csv")
작업이 완료된 작업의 절반 1 시간 동안 실행하지만 오류를
com.mongodb.MongoCursorNotFoundException:
Query failed with error code -5 and error message
'Cursor 8962537864706894243 not found on server cluster0-shard-01-00-i7t2t.mongodb.net:37017'
on server cluster0-shard-01-00-i7t2t.mongodb.net:37017
을 제공합니다 그 후 나는 아래에 구성을 변경했지만, 아무 소용.
System.setProperty("spark.mongodb.keep_alive_ms", "7200000")
큰 컬렉션을 읽는 방법을 제안하십시오.