spark sql读取hive数据直接写入doris,离线批量导入

先简单的贴贴代码,后面会完善一下。

一,spark sql 读取hive表

这里通过catalog查询表的字段信息,然后 查询出来的字段colStr 要给下面的doris使用。

spark sql读取hive数据直接写入doris,离线批量导入_第1张图片

 注意:我这里是直接拿取的hive表所有的字段。

二,spark自定义输出


这里就是简单封装了一下

spark sql读取hive数据直接写入doris,离线批量导入_第2张图片

实现的效果:

spark sql读取hive数据直接写入doris,离线批量导入_第3张图片

三,通过stream load方式数据写入doris


   循环遍历DataFrame之后写入到doris里面:

 val dorisStreamLoader = new DorisStreamLoad("192.168.5.xx:8040", "example_db", "assuer_order_test", "root", "root")
      val cumsArrays = colStr.split(",")
      val fieldDelimiter: String = "\t"
      val lineDelimiter: String = "\n"
      val NULL_VALUE: String = "\\N"
      val maxRowCount = 5000
      val maxRetryTimes = 3
      data.rdd.foreachPartition(partition => {
        val buffer = ListBuffer[String]()

        var jsonArrays = new JSONArray()
        partition.foreach(f = row => {
          //            val value: StringJoiner = new StringJoiner(fieldDelimiter)
          // create one row string
          val json = new JSONObject()
          for (i <- 0 until row.size) {

            val field = row.get(i)
            val fieldName = cumsArrays(i)
            if (field == null) {
              //                

你可能感兴趣的:(apache,doris,sparkSql写入doris,spark,写入,doris,doris,spark,doris)