Merhaba bunu deneyebilirsiniz:
1 Spark
https://github.com/Stratio/deep-spark/tree/develop
ile MongoDB içeren bir proje) bir git klon
2) derin kıvılcım içeri yapmak yok, daha sonra derin ana
3) mvn'yi yükleyin
Bu amaç ile 363.210
4) açık kıvılcım kabuk:
./spark-shell --jars YOUR_PATH/derin çekirdek-0.7.0-SNAPSHOT.jar, YOUR_PATH/derin commons-0.7.0-SNAPSHOT. kavanoz, YOUR_PATH/derin mongodb-0.7.0-SNAPSHOT.jar, YOUR_PATH/Mongo-java sürücüsü-2.12.4-sources.jar
gerçek yolu
5 ile "YOUR_PATH" üzerine yazmak hatırlamak) kıvılcım kabuğunda basit bir örnek yürütün:
import com.stratio.deep.mongodb.config.MongoDeepJobConfig
import com.stratio.deep.mongodb.extractor.MongoNativeDBObjectExtractor
import com.stratio.deep.core.context.DeepSparkContext
import com.mongodb.DBObject
import org.apache.spark.rdd.RDD
import com.mongodb.QueryBuilder
import com.mongodb.BasicDBObject
val host = "localhost:27017"
val database = "test"
val inputCollection = "input";
val deepContext: DeepSparkContext = new DeepSparkContext(sc)
val inputConfigEntity: MongoDeepJobConfig[DBObject] = new MongoDeepJobConfig[DBObject](classOf[DBObject])
val query: QueryBuilder = QueryBuilder.start();
query.and("number").greaterThan(27).lessThan(30);
inputConfigEntity.host(host).database(database).collection(inputCollection).filterQuery(query).setExtractorImplClass(classOf[MongoNativeDBObjectExtractor])
val inputRDDEntity: RDD[DBObject] = deepContext.createRDD(inputConfigEntity)
Bunun en iyi şey, bir QueryBui kullanabilirsiniz olmasıdır lder Nesne sorgularınızın
Ayrıca böyle bir DBObject iletebilirsiniz yapmak:
{ "number" : { "$gt" : 27 , "$lt" : 30}}
Eğer yöntemini yourRDD.collect() kullanabilir yineleme istiyorsanız. Ayrıca, RDD.foreach'inizi de kullanabilirsiniz, ancak bir işlev sağlamalısınız.
Kavanozun kıvılcım eklenmesi için başka bir yol var. Sen spark-env.sh değiştirebilir ve sonunda bu çizgiyi koyabilirsiniz:
CONFDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
for jar in $(ls $CONFDIR/../lib/*.jar); do
SPARK_CLASSPATH=$SPARK_CLASSPATH:${jar}
done
Eğer kütüphaneleri koymak lib klasörü içinde ve hepsi bu kadar.
Yasal Uyarı:
config.set("mongo.input.query","{customerId: 'some mongo id', usage: {'$gt': 30}")
için: Ben şu anda sorguya koşullar eklemek amacıyla Stratio
burada bazı yan bayrak: Mongo için Hadoop biçimi açık bağlantıları tutan kaynak elleçleme sorunu var. Spark ile karıştırdığımızda patlayıcı bir kombinasyon oldu. * Önlemek * – maasg
@ maasg Kıvılcım ile mongo bağlantısı için başka bir seçenek var mı? – Vishwas