public static HiveConf storePropertiesToHiveConf(Properties properties, HiveConf hiveConf)
      throws IOException {
    for (Map.Entry<Object, Object> prop : properties.entrySet()) {
      if (prop.getValue() instanceof String) {
        hiveConf.set((String) prop.getKey(), (String) prop.getValue());
      } else if (prop.getValue() instanceof Integer) {
        hiveConf.setInt((String) prop.getKey(), (Integer) prop.getValue());
      } else if (prop.getValue() instanceof Boolean) {
        hiveConf.setBoolean((String) prop.getKey(), (Boolean) prop.getValue());
      } else if (prop.getValue() instanceof Long) {
        hiveConf.setLong((String) prop.getKey(), (Long) prop.getValue());
      } else if (prop.getValue() instanceof Float) {
        hiveConf.setFloat((String) prop.getKey(), (Float) prop.getValue());
      } else {
        LOG.warn("Unsupported type: key=" + prop.getKey() + " value=" + prop.getValue());
      }
    }
    return hiveConf;
  }
Returns the hive-site.xml config settings which do not appear in <code>jobConf<code> or
the hive-site.xml config settings which appear in <code>jobConf<code>, but have a
different value than HiveConf code defaults.
@param hiveSite the config settings as found in the hive-site.xml only.
@param jobConf the config settings used to launch the job.
@return the set difference between hiveSite and jobConf.
hcatalog/core/src/main/java/org/apache/hive/hcatalog/common/HCatUtil.java