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"
                    ;
        }
    

      



  • 相关阅读:
    async/await的一些用法
    软件须把握两个点: 错误可控, 复杂度可控
    C++内存管理原则
    *复赛前提醒
    一些好用的网站
    NOIP真题汇总
    信息学中的一些些数论
    [Luogu 1052] noip 05 过河
    浅谈概率期望动态规划
    [Luogu 1312] noip11 Mayan游戏
  • 原文地址:https://www.cnblogs.com/irobotzz/p/15561140.html
Copyright © 2011-2022 走看看