Skip to content

Commit 514477f

Browse files
AbstractSerDe class rather than obsolete SerDe interface (#131)
1 parent ed81d45 commit 514477f

File tree

5 files changed

+112
-40
lines changed

5 files changed

+112
-40
lines changed

hive/src/main/java/com/esri/hadoop/hive/serde/BaseJsonSerDe.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import org.apache.commons.logging.Log;
1212
import org.apache.commons.logging.LogFactory;
1313
import org.apache.hadoop.conf.Configuration;
14-
import org.apache.hadoop.hive.serde2.SerDe;
14+
import org.apache.hadoop.hive.serde2.AbstractSerDe;
1515
import org.apache.hadoop.hive.serde2.SerDeException;
1616
import org.apache.hadoop.hive.serde2.SerDeStats;
1717
import org.apache.hadoop.hive.serde2.io.ByteWritable;
@@ -48,7 +48,7 @@
4848
import com.esri.hadoop.shims.HiveShims;
4949

5050

51-
abstract public class BaseJsonSerDe implements SerDe {
51+
abstract public class BaseJsonSerDe extends AbstractSerDe {
5252
static final Log LOG = LogFactory.getLog(BaseJsonSerDe.class.getName());
5353

5454
static protected JsonFactory jsonFactory = new JsonFactory();

hive/src/test/java/com/esri/hadoop/hive/serde/JsonSerDeTestingBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import org.junit.Assert;
44
import java.util.ArrayList;
55

6-
import org.apache.hadoop.hive.serde2.SerDe;
6+
import org.apache.hadoop.hive.serde2.AbstractSerDe;
77
import org.apache.hadoop.hive.serde2.io.ByteWritable;
88
import org.apache.hadoop.hive.serde2.io.DoubleWritable;
99
import org.apache.hadoop.hive.serde2.io.DateWritable;
@@ -82,7 +82,7 @@ protected Object getField(String col, Object row, StructObjectInspector rowOI) {
8282
return rowOI.getStructFieldData(row, f0);
8383
}
8484

85-
protected Object runSerDe(Object stuff, SerDe jserde, StructObjectInspector rowOI) throws Exception {
85+
protected Object runSerDe(Object stuff, AbstractSerDe jserde, StructObjectInspector rowOI) throws Exception {
8686
Writable jsw = jserde.serialize(stuff, rowOI);
8787
//System.err.println(jsw);
8888
return jserde.deserialize(jsw);

hive/src/test/java/com/esri/hadoop/hive/serde/TestEsriJsonSerDe.java

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import java.util.ArrayList;
77
import java.util.Properties;
88
import org.apache.hadoop.conf.Configuration;
9-
import org.apache.hadoop.hive.serde2.SerDe;
9+
import org.apache.hadoop.hive.serde2.AbstractSerDe;
1010
import org.apache.hadoop.hive.serde2.io.ByteWritable;
1111
import org.apache.hadoop.hive.serde2.io.DateWritable;
1212
import org.apache.hadoop.hive.serde2.io.ShortWritable;
@@ -47,7 +47,7 @@ public void TestIntWrite() throws Exception {
4747
Properties proptab = new Properties();
4848
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
4949
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
50-
SerDe jserde = mkSerDe(proptab);
50+
AbstractSerDe jserde = mkSerDe(proptab);
5151
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
5252

5353
// {"attributes":{"num":7}}
@@ -65,7 +65,7 @@ public void TestEpochWrite() throws Exception {
6565
Properties proptab = new Properties();
6666
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
6767
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
68-
SerDe jserde = mkSerDe(proptab);
68+
AbstractSerDe jserde = mkSerDe(proptab);
6969
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
7070

7171
// {"attributes":{"when":147147147147}}
@@ -87,7 +87,7 @@ public void TestTimeWrite() throws Exception {
8787
Properties proptab = new Properties();
8888
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
8989
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "timestamp");
90-
SerDe jserde = mkSerDe(proptab);
90+
AbstractSerDe jserde = mkSerDe(proptab);
9191
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
9292

9393
// {"attributes":{"when":147147147147}}
@@ -108,7 +108,7 @@ public void TestPointWrite() throws Exception {
108108
Properties proptab = new Properties();
109109
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
110110
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
111-
SerDe jserde = mkSerDe(proptab);
111+
AbstractSerDe jserde = mkSerDe(proptab);
112112
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
113113

114114
// {"attributes":{},"geometry":{"x":15.0,"y":5.0}}
@@ -126,7 +126,7 @@ public void TestIntParse() throws Exception {
126126
Configuration config = new Configuration();
127127
Text value = new Text();
128128

129-
SerDe jserde = new EsriJsonSerDe();
129+
AbstractSerDe jserde = new EsriJsonSerDe();
130130
Properties proptab = new Properties();
131131
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
132132
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
@@ -151,7 +151,7 @@ public void TestDateParse() throws Exception {
151151
Configuration config = new Configuration();
152152
Text value = new Text();
153153

154-
SerDe jserde = new EsriJsonSerDe();
154+
AbstractSerDe jserde = new EsriJsonSerDe();
155155
Properties proptab = new Properties();
156156
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
157157
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
@@ -176,7 +176,7 @@ public void TestEpochParse() throws Exception {
176176
Configuration config = new Configuration();
177177
Text value = new Text();
178178

179-
SerDe jserde = new EsriJsonSerDe();
179+
AbstractSerDe jserde = new EsriJsonSerDe();
180180
Properties proptab = new Properties();
181181
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
182182
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
@@ -203,7 +203,7 @@ public void TestTimeParse() throws Exception {
203203
Configuration config = new Configuration();
204204
Text value = new Text();
205205

206-
SerDe jserde = new EsriJsonSerDe();
206+
AbstractSerDe jserde = new EsriJsonSerDe();
207207
Properties proptab = new Properties();
208208
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
209209
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "timestamp");
@@ -242,7 +242,7 @@ public void TestPointParse() throws Exception {
242242
Configuration config = new Configuration();
243243
Text value = new Text();
244244

245-
SerDe jserde = new EsriJsonSerDe();
245+
AbstractSerDe jserde = new EsriJsonSerDe();
246246
Properties proptab = new Properties();
247247
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
248248
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
@@ -268,7 +268,7 @@ public void TestIntOnly() throws Exception {
268268
Properties proptab = new Properties();
269269
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
270270
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
271-
SerDe jserde = mkSerDe(proptab);
271+
AbstractSerDe jserde = mkSerDe(proptab);
272272
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
273273

274274
addWritable(stuff, 7);
@@ -289,7 +289,7 @@ public void TestPointOnly() throws Exception {
289289
Properties proptab = new Properties();
290290
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
291291
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
292-
SerDe jserde = mkSerDe(proptab);
292+
AbstractSerDe jserde = mkSerDe(proptab);
293293
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
294294

295295
//value.set("{\"attributes\":{},\"geometry\":{\"x\":15.0,\"y\":5.0}}");
@@ -312,7 +312,7 @@ public void TestIntPoint() throws Exception {
312312
Properties proptab = new Properties();
313313
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num,shape");
314314
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "bigint,binary");
315-
SerDe jserde = mkSerDe(proptab);
315+
AbstractSerDe jserde = mkSerDe(proptab);
316316
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
317317

318318
//value.set("{\"attributes\":{\"num\":7},\"geometry\":{\"x\":15.0,\"y\":5.0}}");
@@ -339,7 +339,7 @@ public void TestNullAttr() throws Exception {
339339
Properties proptab = new Properties();
340340
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
341341
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
342-
SerDe jserde = mkSerDe(proptab);
342+
AbstractSerDe jserde = mkSerDe(proptab);
343343
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
344344

345345
//value.set("{\"attributes\":{\"num\":7}}");
@@ -360,7 +360,7 @@ public void TestNullGeom() throws Exception {
360360
Properties proptab = new Properties();
361361
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
362362
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
363-
SerDe jserde = mkSerDe(proptab);
363+
AbstractSerDe jserde = mkSerDe(proptab);
364364
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
365365

366366
//value.set("{\"attributes\":{},\"geometry\":{\"x\":15.0,\"y\":5.0}}");
@@ -382,7 +382,7 @@ public void TestColumnTypes() throws Exception {
382382
Properties proptab = new Properties();
383383
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "flag,num1,num2,text");
384384
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "boolean,tinyint,smallint,string");
385-
SerDe jserde = mkSerDe(proptab);
385+
AbstractSerDe jserde = mkSerDe(proptab);
386386
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
387387

388388
// {"attributes":{"flag":false,"num":"5","text":"Point(15.0 5.0)"}}
@@ -430,7 +430,7 @@ public void LegacyName() throws Exception {
430430
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num,shape");
431431
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "bigint,binary");
432432
Configuration config = new Configuration();
433-
SerDe jserde = new JsonSerde();
433+
AbstractSerDe jserde = new JsonSerde();
434434
jserde.initialize(config, proptab);
435435
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
436436
@@ -453,9 +453,9 @@ public void LegacyName() throws Exception {
453453
}
454454
* */
455455

456-
private SerDe mkSerDe(Properties proptab) throws Exception {
456+
private AbstractSerDe mkSerDe(Properties proptab) throws Exception {
457457
Configuration config = new Configuration();
458-
SerDe jserde = new EsriJsonSerDe();
458+
AbstractSerDe jserde = new EsriJsonSerDe();
459459
jserde.initialize(config, proptab);
460460
return jserde;
461461
}

hive/src/test/java/com/esri/hadoop/hive/serde/TestGeoJsonSerDe.java

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import java.util.Properties;
88
import java.util.TimeZone;
99
import org.apache.hadoop.conf.Configuration;
10-
import org.apache.hadoop.hive.serde2.SerDe;
10+
import org.apache.hadoop.hive.serde2.AbstractSerDe;
1111
import org.apache.hadoop.hive.serde2.io.DateWritable;
1212
import org.apache.hadoop.hive.serde2.objectinspector.StructField;
1313
import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector;
@@ -40,7 +40,7 @@ public void TestIntWrite() throws Exception {
4040
Properties proptab = new Properties();
4141
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
4242
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
43-
SerDe jserde = mkSerDe(proptab);
43+
AbstractSerDe jserde = mkSerDe(proptab);
4444
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
4545

4646
// {"properties":{"num":7}}
@@ -58,7 +58,7 @@ public void TestEpochWrite() throws Exception {
5858
Properties proptab = new Properties();
5959
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
6060
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
61-
SerDe jserde = mkSerDe(proptab);
61+
AbstractSerDe jserde = mkSerDe(proptab);
6262
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
6363

6464
// {"properties":{"when":147147147147}}
@@ -80,7 +80,7 @@ public void TestPointWrite() throws Exception {
8080
Properties proptab = new Properties();
8181
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
8282
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
83-
SerDe jserde = mkSerDe(proptab);
83+
AbstractSerDe jserde = mkSerDe(proptab);
8484
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
8585

8686
// {"properties":{},"geometry":{"type":"Point","coordinates":[15.0,5.0]}}
@@ -98,7 +98,7 @@ public void TestIntParse() throws Exception {
9898
Configuration config = new Configuration();
9999
Text value = new Text();
100100

101-
SerDe jserde = new GeoJsonSerDe();
101+
AbstractSerDe jserde = new GeoJsonSerDe();
102102
Properties proptab = new Properties();
103103
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
104104
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
@@ -122,7 +122,7 @@ public void TestDateParse() throws Exception {
122122
Configuration config = new Configuration();
123123
Text value = new Text();
124124

125-
SerDe jserde = new GeoJsonSerDe();
125+
AbstractSerDe jserde = new GeoJsonSerDe();
126126
Properties proptab = new Properties();
127127
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
128128
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
@@ -147,7 +147,7 @@ public void TestEpochParse() throws Exception {
147147
Configuration config = new Configuration();
148148
Text value = new Text();
149149

150-
SerDe jserde = new GeoJsonSerDe();
150+
AbstractSerDe jserde = new GeoJsonSerDe();
151151
Properties proptab = new Properties();
152152
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "when");
153153
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "date");
@@ -174,7 +174,7 @@ public void TestPointParse() throws Exception {
174174
Configuration config = new Configuration();
175175
Text value = new Text();
176176

177-
SerDe jserde = new GeoJsonSerDe();
177+
AbstractSerDe jserde = new GeoJsonSerDe();
178178
Properties proptab = new Properties();
179179
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
180180
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
@@ -200,7 +200,7 @@ public void TestIntOnly() throws Exception { // Is this valid for GeoJSON?
200200
Properties proptab = new Properties();
201201
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
202202
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
203-
SerDe jserde = mkSerDe(proptab);
203+
AbstractSerDe jserde = mkSerDe(proptab);
204204
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
205205

206206
//value.set("{\"properties\":{\"num\":7}}");
@@ -221,7 +221,7 @@ public void TestPointOnly() throws Exception {
221221
Properties proptab = new Properties();
222222
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
223223
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
224-
SerDe jserde = mkSerDe(proptab);
224+
AbstractSerDe jserde = mkSerDe(proptab);
225225
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
226226

227227
//value.set("{\"properties\":{},\"geometry\":{\"type\":\"Point\",\"coordinates\":[15.0,5.0]}}");
@@ -244,7 +244,7 @@ public void TestIntPoint() throws Exception {
244244
Properties proptab = new Properties();
245245
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num,shape");
246246
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "bigint,binary");
247-
SerDe jserde = mkSerDe(proptab);
247+
AbstractSerDe jserde = mkSerDe(proptab);
248248
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
249249

250250
// value.set("{\"properties\":{\"num\":7},\"geometry\":{\"type\":\"Point\",\"coordinates\":[15.0,5.0]}}");
@@ -271,7 +271,7 @@ public void TestNullAttr() throws Exception {
271271
Properties proptab = new Properties();
272272
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "num");
273273
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "int");
274-
SerDe jserde = mkSerDe(proptab);
274+
AbstractSerDe jserde = mkSerDe(proptab);
275275
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
276276

277277
//value.set("{\"properties\":{\"num\":7}}");
@@ -292,7 +292,7 @@ public void TestNullGeom() throws Exception {
292292
Properties proptab = new Properties();
293293
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMNS, "shape");
294294
proptab.setProperty(HiveShims.serdeConstants.LIST_COLUMN_TYPES, "binary");
295-
SerDe jserde = mkSerDe(proptab);
295+
AbstractSerDe jserde = mkSerDe(proptab);
296296
StructObjectInspector rowOI = (StructObjectInspector)jserde.getObjectInspector();
297297

298298
//value.set("{\"properties\":{},\"geometry\":{\"type\":\"Point\",\"coordinates\":[15.0,5.0]}}");
@@ -309,9 +309,9 @@ public void TestNullGeom() throws Exception {
309309
}
310310

311311

312-
private SerDe mkSerDe(Properties proptab) throws Exception {
312+
private AbstractSerDe mkSerDe(Properties proptab) throws Exception {
313313
Configuration config = new Configuration();
314-
SerDe jserde = new GeoJsonSerDe();
314+
AbstractSerDe jserde = new GeoJsonSerDe();
315315
jserde.initialize(config, proptab);
316316
return jserde;
317317
}

0 commit comments

Comments
 (0)