AbstractRowContainer<List<Object>> alw = storage[alias]; if (!alw.isSingleRow()) { allOne = false; if (!alw.hasRows()) { alw.addRow(dummyObj[i]); hasNulls = true; } else if (condn[i].getPreserved()) { if (!alw.hasRows()) { return; } else if (!alw.isSingleRow()) { mayHasMoreThanOne = true; if (!alw.hasRows()) { hasEmpty = true; alw.addRow(dummyObj[i]); } else if (!hasEmpty && alw.isSingleRow()) { if (hasAnyFiltered(alias, alw.rowIter().first())) { hasEmpty = true; mayHasMoreThanOne = true; if (!hasEmpty) { AbstractRowContainer.RowIterator<List<Object>> iter = alw.rowIter(); for (List<Object> row = iter.first(); row != null; row = iter.next()) { reportProgress();
@Override public void startGroup() throws HiveException { newGroupStarted = true; for (AbstractRowContainer<List<Object>> alw : storage) { alw.clearRows(); } super.startGroup(); }
final long sz = storage[alias].rowCount(); StructObjectInspector soi = (StructObjectInspector) inputObjInspectors[tag]; StructField sf = soi.getStructFieldRef(Utilities.ReduceField.KEY storage[alias].clearRows(); startGroup(); storage[alias].addRow(nr); } catch (Exception e) { throw new HiveException(e);
private void genAllOneUniqueJoinObject() throws HiveException { int p = 0; for (int i = 0; i < numAliases; i++) { int sz = joinValues[order[i]].size(); List<Object> obj = storage[order[i]].rowIter().first(); for (int j = 0; j < sz; j++) { forwardCache[p++] = obj.get(j); } } internalForward(forwardCache, outputObjInspector); countAfterReport = 0; }
if (alw.size() != 1) { allOne = false; if (alw.size() == 0) { alw.add((ArrayList<Object>) dummyObj[i]); hasNulls = true; } else if (condn[i].getPreserved()) { if (alw.size() == 0) { LOG.trace("No data for alias=" + i); return; } else if (alw.size() > 1) { mayHasMoreThanOne = true; if (alw.size() == 0) { hasEmpty = true; alw.add((ArrayList<Object>) dummyObj[i]); } else if (!hasEmpty && alw.size() == 1) { ArrayList<Object> row = alw.first(); int numValues = joinValues.get(alias).size(); if (row == dummyObj[alias] if (!hasEmpty) { int numValues = joinValues.get(alias).size(); for (ArrayList<Object> row = alw.first(); row != null; row = alw.next()) { if (row == dummyObj[alias] || (row.size() > numValues && ((BooleanWritable) (row.get(numValues))).get())) {
private void genUniqueJoinObject(int aliasNum, int forwardCachePos) throws HiveException { AbstractRowContainer<ArrayList<Object>> alias = storage.get(order[aliasNum]); for (ArrayList<Object> row = alias.first(); row != null; row = alias.next()) { int sz = joinValues.get(order[aliasNum]).size(); int p = forwardCachePos; for (int j = 0; j < sz; j++) { forwardCache[p++] = row.get(j); } if (aliasNum == numAliases - 1) { forward(forwardCache, outputObjInspector); countAfterReport = 0; } else { genUniqueJoinObject(aliasNum + 1, p); } } }
@Override public void startGroup() throws HiveException { LOG.trace("Join: Starting new group"); newGroupStarted = true; for (AbstractRowContainer<ArrayList<Object>> alw : storage.values()) { alw.clear(); } }
private void genAllOneUniqueJoinObject() throws HiveException { int p = 0; for (int i = 0; i < numAliases; i++) { int sz = joinValues.get(order[i]).size(); ArrayList<Object> obj = storage.get(order[i]).first(); for (int j = 0; j < sz; j++) { forwardCache[p++] = obj.get(j); } } forward(forwardCache, outputObjInspector); countAfterReport = 0; }
private void genAllOneUniqueJoinObject() throws HiveException { int p = 0; for (int i = 0; i < numAliases; i++) { int sz = joinValues[order[i]].size(); List<Object> obj = storage[order[i]].rowIter().first(); for (int j = 0; j < sz; j++) { forwardCache[p++] = obj.get(j); } } internalForward(forwardCache, outputObjInspector); countAfterReport = 0; }
/** * All done. * */ @Override public void closeOp(boolean abort) throws HiveException { LOG.trace("Join Op close"); for (AbstractRowContainer<ArrayList<Object>> alw : storage.values()) { if (alw != null) { alw.clear(); // clean up the temp files } } storage.clear(); }
AbstractRowContainer<List<Object>> alw = storage[alias]; if (!alw.isSingleRow()) { allOne = false; if (!alw.hasRows()) { alw.addRow(dummyObj[i]); hasNulls = true; } else if (condn[i].getPreserved()) { if (!alw.hasRows()) { return; } else if (!alw.isSingleRow()) { mayHasMoreThanOne = true; if (!alw.hasRows()) { hasEmpty = true; alw.addRow(dummyObj[i]); } else if (!hasEmpty && alw.isSingleRow()) { if (hasAnyFiltered(alias, alw.rowIter().first())) { hasEmpty = true; mayHasMoreThanOne = true; if (!hasEmpty) { AbstractRowContainer.RowIterator<List<Object>> iter = alw.rowIter(); for (List<Object> row = iter.first(); row != null; row = iter.next()) { reportProgress();
private void genUniqueJoinObject(int aliasNum, int forwardCachePos) throws HiveException { AbstractRowContainer.RowIterator<List<Object>> iter = storage[order[aliasNum]].rowIter(); for (List<Object> row = iter.first(); row != null; row = iter.next()) { reportProgress(); int sz = joinValues[order[aliasNum]].size(); int p = forwardCachePos; for (int j = 0; j < sz; j++) { forwardCache[p++] = row.get(j); } if (aliasNum == numAliases - 1) { internalForward(forwardCache, outputObjInspector); countAfterReport = 0; } else { genUniqueJoinObject(aliasNum + 1, p); } } }