use of edu.uci.ics.texera.api.field.DateTimeField 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();
}
}
use of edu.uci.ics.texera.api.field.DateTimeField 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);
}
use of edu.uci.ics.texera.api.field.DateTimeField in project textdb by TextDB.
the class TwitterJsonConverter method generateFieldsFromJson.
/**
* Generates Fields from the raw JSON tweet.
* Returns Optional.Empty() if something goes wrong while parsing this tweet.
*/
private Optional<List<IField>> generateFieldsFromJson(String rawJsonData) {
try {
// read the JSON string into a JSON object
JsonNode tweet = new ObjectMapper().readTree(rawJsonData);
// extract fields from the JSON object
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()));
String isRetweet = tweet.get("is_retweet").asText();
return Optional.of(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()), new StringField(isRetweet)));
} catch (Exception e) {
return Optional.empty();
}
}
Aggregations