private static void addPartitionColumnStats(HiveConf conf, List<String> partitionCols, List<ColumnInfo> schema, Table table, PrunedPartitionList partList, List<ColStatistics> colStats) throws HiveException { for (String col : partitionCols) { for (ColumnInfo ci : schema) { // conditions for being partition column if (col.equals(ci.getInternalName())) { colStats.add(getColStatsForPartCol(ci, new PartitionIterable(partList.getPartitions()), conf)); } } } }
private static void addParitionColumnStats(HiveConf conf, List<String> neededColumns, List<String> referencedColumns, List<ColumnInfo> schema, Table table, PrunedPartitionList partList, List<ColStatistics> colStats) throws HiveException { // extra columns is difference between referenced columns vs needed // columns. The difference could be partition columns. List<String> extraCols = Lists.newArrayList(referencedColumns); if (referencedColumns.size() > neededColumns.size()) { extraCols.removeAll(neededColumns); for (String col : extraCols) { for (ColumnInfo ci : schema) { // conditions for being partition column if (col.equals(ci.getInternalName()) && ci.getIsVirtualCol() && !ci.isHiddenVirtualCol()) { colStats.add(getColStatsForPartCol(ci, new PartitionIterable(partList.getPartitions()), conf)); } } } } }
ColStatistics cStats = null; for (int i = 0; i < partColNamesThatRqrStats.size(); i++) { cStats = StatsUtils.getColStatsForPartCol(hivePartitionColsMap.get(partColIndxsThatRqrStats.get(i)), new PartitionIterable(partitionList.getNotDeniedPartns()), hiveConf); hiveColStatsMap.put(partColIndxsThatRqrStats.get(i), cStats);
PartitionIterable parts = new PartitionIterable(db, tbl, null, conf.getIntVar(HiveConf.ConfVars.METASTORE_BATCH_RETRIEVE_MAX)); ColumnInfo ci = new ColumnInfo(partCol.getName(),TypeInfoUtils.getTypeInfoFromTypeString(partCol.getType()),null,false); ColStatistics cs = StatsUtils.getColStatsForPartCol(ci, parts, conf); ColumnStatisticsData data = new ColumnStatisticsData(); ColStatistics.Range r = cs.getRange();
PartitionIterable parts = new PartitionIterable(db, tbl, null, conf.getIntVar(HiveConf.ConfVars.METASTORE_BATCH_RETRIEVE_MAX)); ColumnInfo ci = new ColumnInfo(partCol.getName(),TypeInfoUtils.getTypeInfoFromTypeString(partCol.getType()),null,false); ColStatistics cs = StatsUtils.getColStatsForPartCol(ci, parts, conf); ColumnStatisticsData data = new ColumnStatisticsData(); ColStatistics.Range r = cs.getRange();