package mypackage.bolts;
import backtype.storm.task.OutputCollector;
import backtype.storm.task.TopologyContext;
import backtype.storm.topology.OutputFieldsDeclarer;
import backtype.storm.topology.base.BaseRichBolt;
import backtype.storm.tuple.Fields;
import backtype.storm.tuple.Tuple;
import backtype.storm.tuple.Values;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.Keyspace;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
import me.prettyprint.hector.api.ddl.ComparatorType;
import me.prettyprint.hector.api.factory.HFactory;
import me.prettyprint.hector.api.mutation.Mutator;
import java.io.BufferedWriter;
import java.sql.Connection;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Map;
import java.util.Set;
/**
* Created by anshushukla on 08/04/15.
*/
public class CasanTest extends BaseRichBolt {
Cluster cluster = null;
Keyspace keySpace = null;
OutputCollector ouc;
BufferedWriter bw;
static String DB_URL;
static String JDBC_DRIVER;
static final String USER = "root";
static final String PASS = "12345";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
static Set<String> positiveList;
static Set<String> negativeList;
String sentiment;
String shortUrl;
Mutator<String> mutator;
ColumnFamilyDefinition cf;
@Override
public void prepare(Map map, TopologyContext topologyContext, OutputCollector collector) {
cluster = HFactory.getOrCreateCluster("Test Cluster", "localHost:9160");
//keySpace = HFactory.createKeyspace("USERKEYSPACE", cluster);
keySpace = HFactory.createKeyspace("tw", cluster);
cf = HFactory.createColumnFamilyDefinition("tw", "ucf1", ComparatorType.UTF8TYPE);
// cluster.addColumnFamily(cf);
StringSerializer stringSerializer = StringSerializer.get();
mutator = HFactory.createMutator(keySpace, stringSerializer);
ouc = collector;
}
@Override
public void execute(Tuple tuple) {
System.out.print("+++++++++++++++++++++++++++++++++++++++++++++++++");
String expUrl = tuple.getStringByField("expUrl");
shortUrl = tuple.getStringByField("shortUrl");
long yourmilliseconds = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm");
Date resultdate = new Date(yourmilliseconds);
System.out.println("modified format is "+sdf.format(resultdate));
String time=""+(sdf.format(resultdate)+1);
String time_string=""+yourmilliseconds;
System.out.print("time is -"+time_string);
// sentiment=""+classifyText(expUrl);
//System.out.println("sentiment here is ------" + sentiment );
mutator.insert("names", cf.getName(), HFactory.createStringColumn(time_string, expUrl));
mutator.insert("other", cf.getName(), HFactory.createStringColumn(time_string, expUrl));
//String cql=;
System.out.print("--------------executing cql --------------");
//stmt.executeUpdate(sql);
System.out.println("Inserted records into the table...");
ouc.emit(new Values(shortUrl, "sentiment"));
System.out.println("==========================Done==========================");
ouc.ack(tuple);
}
@Override
public void declareOutputFields(OutputFieldsDeclarer outputFieldsDeclarer) {
outputFieldsDeclarer.declare(new Fields("hashtag","sentiment"));
}
}