将HIVE库里的表数据通过saprk写入到mongodb库里的实现
1、到mongodb的官网上下载mongo-spark-connector_2.10-1.1.0
2、下载mongodb-driver-core-3.6.0.jar ,mongodb-driver-3.6.0.jar,bson-3.6.0.jar 三者的版本必须一致
使用scala连接mongodb,官网上有相关的文档说明
代码如下
val df = hiveContext.sql("select concat(appid,'_',date_starttime) rym_day_result_id ,appid, uv_total_k , uv_total_y ,uv_initialize ,uv_exposure ,uv_active_k ,uv_active_y,date_add(date_starttime,1) dateNew,date_starttime dateTime,0 activeNum from rym_day_result")
val uriStr = "mongodb://user:pwd@ip:port/mirp-core.test_day_result"
df.write.options(Map("spark.mongodb.output.uri"-> uriStr)).mode("overwrite").format("com.mongodb.spark.sql").save()
mode:overwrite 覆盖,append 追加
提交到spark集群上执行
spark-submit --master yarn-cluster \
--queue queue_2101_01 \
--executor-cores 4 \
--executor-memory 6G \
--driver-memory 2G \
--num-executors 5 \
--files /appcom/spark-config/fairscheduler.xml,/appcom/hive-config/hive-site.xml \
--properties-file /appcom/spark-config/spark-defaults.conf \
--jars bson-3.6.0.jar,mongo-spark-connector_2.10-1.1.0.jar,mongodb-driver-3.6.0.jar,mongodb-driver-core-3.6.0.jar \
--class com.pingan.paic.core.CollectDataToMongodb rym_data_day.jar ${dateNo}