zoukankan      html  css  js  c++  java
  • Spark 写Hive指定动态分区

    1、设置

       SparkSession.Builder builder = SparkSession
                    .builder()
                    .config(conf)
                    .master("yarn")
                    .config("hive.exec.dynamici.partition", true)
                    .config("hive.exec.dynamic.partition.mode", "nonstrict")
                    .appName(taskName)
                    .enableHiveSupport();
    

      

    2、sql
      

      /**
         * 同步数据到clickhouse
         * 按照日期分区
         *
         * @param dataFrame
         */
        private void sinkToHive(Dataset<Row> dataFrame) {
            dataFrame.createOrReplaceTempView("soh_tmp");
            String selectSql = "select " + getSelectHiveColumn() + " from soh_tmp";
            String sql = "INSERT INTO TABLE d_vehicle_data_charging_u_d partition(part_key) " + selectSql;
            sparkSession.sql(sql);
        }
    
        /**
         * @return
         */
        private String getSelectHiveColumn() {
            return
                    "vin,\n" +
                            "batch,\n" +
                            "tbox_type,\n" +
                            "collect_time,\n" +
                            "`current_timestamp` AS receive_time,\n" +
                            "battery_voltage_data,\n" +
                            "battery_temp_data,\n" +
                            "charging_status,\n" +
                            "total_current,\n" +
                            "battery_soc,\n" +
                            "max_temp,\n" +
                            "min_temp,\n" +
                            "partition_key,\n" +
                            "total_mileage,\n" +
                            "max_cell_voltage,\n" +
                            "min_cell_voltage,\n" +
                            "level_alarm,\n" +
                            "max_voltage_bat_sys_no,\n" +
                            "max_voltage_bat_cell_no," +
                            "mix_voltage_bat_sys_no,\n" +
                            "min_voltage_bat_cell_no,\n" +
                            "vehicle_status,\n" +
                            "insulation_resistance,\n" +
                            "insulation_Alarm, " +
                            "`current_timestamp`() as create_time,\n" +
                            " partition_key as part_key\n"
                    ;
        }
    

      



  • 相关阅读:
    利息基础理论
    本地数据库
    线上一个数组查询遇到的坑
    老兵的十年职场之路(二)
    老司机心得之时间管理"入坑"
    补习系列(19)-springboot JPA + PostGreSQL
    PostGreSQL(1)-源码安装
    补习系列(18)-springboot H2 迷你数据库
    SpringBoot 2 要不要升级
    补习系列(17)-springboot mongodb 内嵌数据库
  • 原文地址:https://www.cnblogs.com/irobotzz/p/15561140.html
Copyright © 2011-2022 走看看