@Override public Binding apply(Table input) { Binding result = Iterators.getNext(input.rows(), null); return result; }
@Override public T apply(Table table) { Acc<T> acc = agg.createAccumulator(); table.rows().forEachRemaining(acc::accumulate); T result = acc.getValue(); return result; }
public static Table transform(Table table, NodeTransform transform) { // Non-streaming rewrite List<Var> vars = transformVars(transform, table.getVars()) ; Iterator<Binding> iter = table.rows() ; List<Binding> newRows = new ArrayList<>() ; for ( ; iter.hasNext() ; ) { Binding b = iter.next() ; Binding b2 = transform(b, transform) ; newRows.add(b2) ; } return new TableData(vars, newRows) ; }
Table table; void setup(){ //load the csv file table = loadTable("data.csv"); //loop through each row for (TableRow row : table.rows()) { //extract the first and second value from the current row float x = row.getFloat(0);//extract the first value on the row, at index 0 float y = row.getFloat(1);//extract the second value on the row, at index 1 //use the current x,y values to draw an ellipse ellipse(x,y,5,5); } }
public static Table transform(Table table, NodeTransform transform) { List<Var> oldVars = table.getVars(); List<Var> newVars = new ArrayList<Var>(oldVars.size()); for(Var o : oldVars) { Var n = (Var)transform.apply(o); newVars.add(n); } //List<Binding> newBindings = new ArrayList<Binding>(table.size()); Table result = new TableN(newVars); Iterator<Binding> it = table.rows(); while(it.hasNext()) { Binding o = it.next(); Binding n = BindingUtils.transformKeys(o, transform); result.addBinding(n); } return result; }
private static QueryIterator joinWorkerN(QueryIterator left, Table right, JoinType joinType, ExprList conditions, ExecutionContext execCxt) { List<Binding> out = new ArrayList<>() ; for ( ; left.hasNext() ; ) { Binding bindingLeft = left.next() ; int count = 0 ; for (Iterator<Binding> iter = right.rows() ; iter.hasNext();) { Binding bindingRight = iter.next() ; Binding r = Algebra.merge(bindingLeft, bindingRight) ; if ( r == null ) continue ; // This does the conditional part. Theta-join. if ( conditions == null || conditions.isSatisfied(r, execCxt) ) { count ++ ; out.add(r) ; } } if ( count == 0 && ( joinType == LEFT) ) // Conditions on left? out.add(bindingLeft) ; } return new QueryIterPlainWrapper(out.iterator(), execCxt) ; }
public static Table transform(Table table, NodeTransform transform) { List<Var> oldVars = table.getVars(); List<Var> newVars = new ArrayList<Var>(oldVars.size()); for(Var o : oldVars) { Var n = (Var)transform.apply(o); newVars.add(n); } //List<Binding> newBindings = new ArrayList<Binding>(table.size()); Table result = new TableN(newVars); Iterator<Binding> it = table.rows(); while(it.hasNext()) { Binding o = it.next(); Binding n = BindingUtils.transformKeys(o, transform); result.addBinding(n); } return result; }
public static ElementData tableToElement(Table table) { ElementData result = new ElementData(); for(Var v : table.getVars()) { result.add(v); } // result.add(Vars.g); // result.add(Vars.s); // result.add(Vars.p); // result.add(Vars.o); Iterator<Binding> it = table.rows(); while(it.hasNext()) { Binding binding = it.next(); result.add(binding); } return result; }
private List<Binding> toList(Table table) { return Iter.toList(table.rows()) ; }
@Override public Element transform(ElementData el) { Table inTable = el.getTable(); Table outTable = NodeTransformLib.transform(inTable, nodeTransform); ElementData result = new ElementData(); outTable.getVars().forEach(result::add); Streams.stream(outTable.rows()).forEach(result::add); return result; // List<Var> vars = el.getVars().stream() // .map(v -> Optional.ofNullable((Var)nodeTransform.apply(v)).orElse(v)) // .collect(Collectors.toList()); // // // TableData table = new TableData(vars, bindings); } }
@Override public void visit(OpTable opTable) { Table tbl = opTable.getTable(); boolean process = false; for (Var v : tbl.getVars()) { process = process | values.keySet().contains(v); } if (!process) { push(opTable); } else { TableN retTbl = new TableN(tbl.getVars()); Iterator<Binding> iter = tbl.rows(); while (iter.hasNext()) { retTbl.addBinding(rewrite(iter.next())); } push(OpTable.create(retTbl)); } }
@Override public void visit(OpTable opTable) { Table tbl = opTable.getTable(); boolean process = false; for (Var v : tbl.getVars()) { process = process | values.keySet().contains(v); } if (!process) { push(opTable); } else { TableN retTbl = new TableN(tbl.getVars()); Iterator<Binding> iter = tbl.rows(); while (iter.hasNext()) { retTbl.addBinding(rewrite(iter.next())); } push(OpTable.create(retTbl)); } }
Table data; PShape dataPlot; size(1620, 1080, P2D); //create a group to store the lines from each row dataPlot = createShape(GROUP); //load the data, specifying it has a header and it's tab separated data = loadTable("data.tsv", "header, tsv"); //traverse each row for (TableRow row : data.rows ()) { //extract each value int x1 = row.getInt("x1"); int y1 = row.getInt("y1"); int x2 = row.getInt("x2"); int y2 = row.getInt("y2"); //add the coordinates as lines to the group PShape line = createShape(LINE, x1, y1, x2, y2); float dist = dist(x1, y1, x2, y2); line.setStroke(color(map(dist, 0, height, 160, 0))); line.setStrokeWeight(map(dist, 0, height, 10.0, 1.0)); dataPlot.addChild(line); } //render the plot shape(dataPlot);
for (TableRow row : data.rows ()) {
for (TableRow row : data.rows ()) {
for (TableRow row : data.rows ()) {
Table data; PShape dataPlot; size(1620, 1080,P2D); //create a group to store the lines from each row dataPlot = createShape(); //load the data, specifying it has a header and it's tab separated data = loadTable("data.tsv", "header, tsv"); //traverse each row dataPlot.beginShape(LINES); for(TableRow row : data.rows()){ //extract each value int x1 = row.getInt("x1"); int y1 = row.getInt("y1"); int x2 = row.getInt("x2"); int y2 = row.getInt("y2"); //add the coordinates as lines to the group dataPlot.stroke(160); dataPlot.vertex(x1,y1); dataPlot.stroke(0); dataPlot.vertex(x2,y2); } dataPlot.endShape(); //render the plot shape(dataPlot);