Search in sources :

Example 1 with IntegerField

use of edu.uci.ics.texera.api.field.IntegerField in project textdb by TextDB.

the class TwitterConverter method generateFieldsFromJson.

private List<IField> generateFieldsFromJson(String rawJsonData) {
    try {
        JsonNode tweet = new ObjectMapper().readTree(rawJsonData);
        String text = tweet.get("text").asText();
        Long id = tweet.get("id").asLong();
        String tweetLink = "https://twitter.com/statuses/" + id;
        JsonNode userNode = tweet.get("user");
        String userScreenName = userNode.get("screen_name").asText();
        String userLink = "https://twitter.com/" + userScreenName;
        String userName = userNode.get("name").asText();
        String userDescription = userNode.get("description").asText();
        Integer userFollowersCount = userNode.get("followers_count").asInt();
        Integer userFriendsCount = userNode.get("friends_count").asInt();
        JsonNode geoTagNode = tweet.get("geo_tag");
        String state = geoTagNode.get("stateName").asText();
        String county = geoTagNode.get("countyName").asText();
        String city = geoTagNode.get("cityName").asText();
        String createAt = tweet.get("create_at").asText();
        ZonedDateTime zonedCreateAt = ZonedDateTime.parse(createAt, DateTimeFormatter.ISO_INSTANT.withZone(ZoneId.systemDefault()));
        return Arrays.asList(new StringField(id.toString()), new TextField(text), new StringField(tweetLink), new StringField(userLink), new TextField(userScreenName), new TextField(userName), new TextField(userDescription), new IntegerField(userFollowersCount), new IntegerField(userFriendsCount), new TextField(state), new TextField(county), new TextField(city), new DateTimeField(zonedCreateAt.toLocalDateTime()));
    } catch (Exception e) {
        return Arrays.asList();
    }
}
Also used : ZonedDateTime(java.time.ZonedDateTime) StringField(edu.uci.ics.texera.api.field.StringField) TextField(edu.uci.ics.texera.api.field.TextField) JsonNode(com.fasterxml.jackson.databind.JsonNode) IntegerField(edu.uci.ics.texera.api.field.IntegerField) DateTimeField(edu.uci.ics.texera.api.field.DateTimeField) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) TexeraException(edu.uci.ics.texera.api.exception.TexeraException) DataflowException(edu.uci.ics.texera.api.exception.DataflowException)

Example 2 with IntegerField

use of edu.uci.ics.texera.api.field.IntegerField in project textdb by TextDB.

the class NltkSentimentOperator method popupOneTuple.

private Tuple popupOneTuple() {
    Tuple outputTuple = tupleBuffer.get(0);
    tupleBuffer.remove(0);
    if (tupleBuffer.isEmpty()) {
        tupleBuffer = null;
    }
    List<IField> outputFields = new ArrayList<>();
    outputFields.addAll(outputTuple.getFields());
    Integer className = idClassMap.get(outputTuple.getField(SchemaConstants._ID).getValue().toString());
    outputFields.add(new IntegerField(className));
    return new Tuple(outputSchema, outputFields);
}
Also used : ArrayList(java.util.ArrayList) IntegerField(edu.uci.ics.texera.api.field.IntegerField) IField(edu.uci.ics.texera.api.field.IField) Tuple(edu.uci.ics.texera.api.tuple.Tuple)

Example 3 with IntegerField

use of edu.uci.ics.texera.api.field.IntegerField in project textdb by TextDB.

the class SpanTupleTest method testGetters.

@Test
public void testGetters() throws ParseException {
    // create data tuple first
    Attribute[] attributes = new Attribute[TestConstants.ATTRIBUTES_PEOPLE.length + 1];
    for (int count = 0; count < attributes.length - 1; count++) {
        attributes[count] = TestConstants.ATTRIBUTES_PEOPLE[count];
    }
    attributes[attributes.length - 1] = SchemaConstants.SPAN_LIST_ATTRIBUTE;
    List<IField> fields = new ArrayList<IField>(Arrays.asList(new IField[] { new StringField("bruce"), new StringField("lee"), new IntegerField(46), new DoubleField(5.50), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-14-1970")), new TextField("bruce was born in new york city and was grown up in los angeles") }));
    IField spanField = createSpanListField();
    fields.add(spanField);
    spanTuple = new Tuple(new Schema(attributes), fields.toArray(new IField[fields.size()]));
    IField spanFieldRetrieved = spanTuple.getField(SchemaConstants.SPAN_LIST);
    Assert.assertTrue(spanFieldRetrieved instanceof ListField);
    Assert.assertSame(spanField, spanFieldRetrieved);
}
Also used : Attribute(edu.uci.ics.texera.api.schema.Attribute) Schema(edu.uci.ics.texera.api.schema.Schema) ArrayList(java.util.ArrayList) IntegerField(edu.uci.ics.texera.api.field.IntegerField) ListField(edu.uci.ics.texera.api.field.ListField) IField(edu.uci.ics.texera.api.field.IField) StringField(edu.uci.ics.texera.api.field.StringField) TextField(edu.uci.ics.texera.api.field.TextField) DateField(edu.uci.ics.texera.api.field.DateField) SimpleDateFormat(java.text.SimpleDateFormat) DoubleField(edu.uci.ics.texera.api.field.DoubleField) Tuple(edu.uci.ics.texera.api.tuple.Tuple) Test(org.junit.Test)

Example 4 with IntegerField

use of edu.uci.ics.texera.api.field.IntegerField in project textdb by TextDB.

the class TestConstantsChinese method getSamplePeopleTuples.

public static List<Tuple> getSamplePeopleTuples() {
    try {
        IField[] fields1 = { new StringField("无忌"), new StringField("长孙"), new IntegerField(46), new DoubleField(5.50), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-14-1970")), new TextField("北京大学电气工程学院") };
        IField[] fields2 = { new StringField("孔明"), new StringField("洛克贝尔"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("北京大学计算机学院") };
        IField[] fields3 = { new StringField("宋江"), new StringField("建筑"), new IntegerField(42), new DoubleField(5.99), new DateField(new SimpleDateFormat("MM-dd-yyyy").parse("01-13-1974")), new TextField("伟大的建筑是历史的坐标,具有传承的价值。") };
        Tuple tuple1 = new Tuple(SCHEMA_PEOPLE, fields1);
        Tuple tuple2 = new Tuple(SCHEMA_PEOPLE, fields2);
        Tuple tuple3 = new Tuple(SCHEMA_PEOPLE, fields3);
        return Arrays.asList(tuple1, tuple2, tuple3);
    } catch (ParseException e) {
        // exception should not happen because we know the data is correct
        e.printStackTrace();
        return Arrays.asList();
    }
}
Also used : StringField(edu.uci.ics.texera.api.field.StringField) TextField(edu.uci.ics.texera.api.field.TextField) IntegerField(edu.uci.ics.texera.api.field.IntegerField) DateField(edu.uci.ics.texera.api.field.DateField) ParseException(java.text.ParseException) IField(edu.uci.ics.texera.api.field.IField) SimpleDateFormat(java.text.SimpleDateFormat) DoubleField(edu.uci.ics.texera.api.field.DoubleField)

Example 5 with IntegerField

use of edu.uci.ics.texera.api.field.IntegerField in project textdb by TextDB.

the class TestConstantsRegexSplit method constructSamplePeopleTuples.

public static List<Tuple> constructSamplePeopleTuples() {
    IField[] fields1 = { new StringField("bruce"), new StringField("john Lee"), new IntegerField(46), new DoubleField(5.50), new DateTimeField(LocalDateTime.parse("1970-01-01T11:11:11")), new TextField("banana") };
    IField[] fields2 = { new StringField("tom hanks"), new StringField("cruise"), new IntegerField(45), new DoubleField(5.95), new DateTimeField(LocalDateTime.parse("1980-01-02T13:14:15")), new TextField("mississippi") };
    Tuple tuple1 = new Tuple(SCHEMA_PEOPLE, fields1);
    Tuple tuple2 = new Tuple(SCHEMA_PEOPLE, fields2);
    return Arrays.asList(tuple1, tuple2);
}
Also used : StringField(edu.uci.ics.texera.api.field.StringField) TextField(edu.uci.ics.texera.api.field.TextField) IntegerField(edu.uci.ics.texera.api.field.IntegerField) DateTimeField(edu.uci.ics.texera.api.field.DateTimeField) IField(edu.uci.ics.texera.api.field.IField) DoubleField(edu.uci.ics.texera.api.field.DoubleField) Tuple(edu.uci.ics.texera.api.tuple.Tuple)

Aggregations

IntegerField (edu.uci.ics.texera.api.field.IntegerField)98 Tuple (edu.uci.ics.texera.api.tuple.Tuple)90 IField (edu.uci.ics.texera.api.field.IField)88 StringField (edu.uci.ics.texera.api.field.StringField)87 TextField (edu.uci.ics.texera.api.field.TextField)79 ArrayList (java.util.ArrayList)75 Schema (edu.uci.ics.texera.api.schema.Schema)72 Test (org.junit.Test)70 Span (edu.uci.ics.texera.api.span.Span)66 DoubleField (edu.uci.ics.texera.api.field.DoubleField)65 DateField (edu.uci.ics.texera.api.field.DateField)59 SimpleDateFormat (java.text.SimpleDateFormat)57 Attribute (edu.uci.ics.texera.api.schema.Attribute)56 Dictionary (edu.uci.ics.texera.dataflow.dictionarymatcher.Dictionary)29 JoinDistancePredicate (edu.uci.ics.texera.dataflow.join.JoinDistancePredicate)9 KeywordMatcherSourceOperator (edu.uci.ics.texera.dataflow.keywordmatcher.KeywordMatcherSourceOperator)9 JsonNode (com.fasterxml.jackson.databind.JsonNode)5 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)4 IOperator (edu.uci.ics.texera.api.dataflow.IOperator)4 DateTimeField (edu.uci.ics.texera.api.field.DateTimeField)3