sparksql分区读mongodb写入hdfs

本文介绍了如何在Spark环境中配置所需的jar包,包括mongo-spark-connector、mongo-java-driver和mysql-connector-java,以实现从MongoDB读取数据并将其写入到HDFS的过程。关键步骤包括确保兼容的Scala版本和正确的驱动版本。
摘要由CSDN通过智能技术生成

注意:
spark环境的jars下要放入mongo的jar包:
mongo-spark-connector_2.11-2.4.1.jar
2.11是scala版本
mysql-connector-java-8.0.21.jar
mongo-java-driver-3.10.2.jar

package com.xy.use

import java.net.URLEncoder

import org.apache.spark.sql.types.{
   StringType, StructField, StructType}
import org.apache.spark.sql.{
   SaveMode, SparkSession}
//功能描述
/*
* mongodb表LiveStreamAnchor分区读取,写入hdfs
* */
object Tohdfs {
   
  def main(args: Array[String]): Unit = {
   

    var mongoUser:String = URLEncoder.encode("username","utf-8")
    var mongoPwd: String = URLEncoder.encode("password","utf-8")
    var ipport : String  = "ip:3717"
    var dataBase : String  = "库.表"
    //mongodb://testAdmin:123456@127.0.0.1:27017/admin
    var mongoUrl = s"mongodb://${mongoUser}:${mongoPwd}@$ipport/$dataBase"

    //    ————————————————
    //    版权声明:本文为CSDN博主「Alex_81D」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    //    原文链接:https://blog.csdn.net/Alex_81D/article/details/108534641
    val spark = SparkSession.builder()
//      .master("local[*]")
      .appName("MyApp")
      .config("spark.mongodb.input.uri", mongoUrl)
      .getOrCreate()

    // 设置log级别
//    spark.sparkContext.setLogLevel("WARN")
//
//    val df = MongoSpark.load(spark)
    // 设置log级别
    spark.sparkContext.setLogLevel("WARN")

    val schema = StructType(
      List(
        StructField("_id", StringType),
        StructField("co1", StringType),
        StructField("co1", StringType) ,
        StructField("co1", StringType),
        StructField("co1",StringType ) ,
        StructField("co1", StringType),
        StructField("co1", StringType) ,
        StructField("co1", StringType) ,
        StructField("co1", StringType),
        StructField("co1", StringType)
      )
    )

    // 通过schema约束,直接获取需要的字段
    val df = spark.read.format("com.mongodb.spark.sql")
      .option("spark.mongodb.input.partitioner", "DefaultMongoPartitioner")
      .option(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值