import com.fasterxml.jackson.databind.ObjectMapper; import eu.leads.processor.execute.LeadsReducer; import eu.leads.processor.execute.Tuple; import eu.leads.processor.execute.operators.ProjectMapper; import eu.leads.processor.query.SQLQuery; import eu.leads.processor.utils.InfinispanUtils; import eu.leads.processor.utils.Utilities; import net.sf.jsqlparser.schema.Column; import net.sf.jsqlparser.schema.Table; import org.infinispan.Cache; import org.infinispan.distexec.mapreduce.MapReduceTask; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Properties; /** * Created with IntelliJ IDEA. * User: vagvaz * Date: 11/4/13 * Time: 1:55 PM * To change this template use File | Settings | File Templates. */ public class ProjectOperatorTet { private static final int numOfTuples = 10; private static final String[] columnNames = {"url", "domain", "pagerank", "body", "sentiment"}; private static final String[] columnType = {"string", "string", "double", "string", "double"}; public static void main(String[] args) { InfinispanUtils.start(); ObjectMapper mapper = new ObjectMapper(); try { // SQLQuery query = new SQLQuery("user", "location", "select url,domain from webpages", "SELECT"); Cache<String, String> inputMap = (Cache<String, String>) InfinispanUtils.getOrCreatePersistentMap("testData"); for (int i = 0; i < numOfTuples; i++) { Tuple t = Utilities.generateTuple(columnNames, columnType); inputMap.put("test:" + (Integer.toString(i)), t.asString()); } System.out.println("intial"); Utilities.printMap(inputMap); Table t = new Table("schema", "webpages"); List<Column> c = new ArrayList<Column>(); Column urlColumn = new Column(t, "url"); Column pagerank = new Column(t, "pagerank"); c.add(urlColumn); c.add(pagerank); MapReduceTask<String, String, String, String> task = new MapReduceTask<String, String, String, String>(inputMap); Properties conf = new Properties(); conf.setProperty("output", "testOutput"); conf.setProperty("columns", mapper.writeValueAsString(c)); conf.setProperty("data", "data"); task.mappedWith(new ProjectMapper(conf)).reducedWith(new LeadsReducer<String, String>(conf)); // Map<String, String> result = task.execute(); System.out.println("projected"); Map<String, String> dataMap = InfinispanUtils.getOrCreatePersistentMap("data"); Utilities.printMap(dataMap); System.out.println("goodbye"); } catch (Exception e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } } }