diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedSerde.java ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedSerde.java deleted file mode 100644 index c97143c633..0000000000 --- ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedSerde.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.hadoop.hive.ql.exec.vector; - -import org.apache.hadoop.hive.serde2.AbstractSerDe; -import org.apache.hadoop.hive.serde2.SerDeException; -import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; -import org.apache.hadoop.io.Writable; - -/** - * Serdes that support vectorized {@link VectorizedRowBatch} must implement this interface. - */ -public abstract class VectorizedSerde extends AbstractSerDe { - public abstract Writable serializeVector( - VectorizedRowBatch vrg, ObjectInspector objInspector) throws SerDeException; - - public abstract void deserializeVector( - Object rowBlob, int rowsInBlob, VectorizedRowBatch reuseBatch) throws SerDeException; -} diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java index 7b788350b2..725266564a 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java @@ -21,14 +21,10 @@ import java.io.DataOutput; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; import java.util.Properties; -import org.apache.orc.OrcConf; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; -import org.apache.hadoop.hive.ql.exec.vector.VectorizedSerde; import org.apache.hadoop.hive.serde.serdeConstants; import org.apache.hadoop.hive.serde2.AbstractSerDe; import org.apache.hadoop.hive.serde2.SerDeException; @@ -46,15 +42,12 @@ * It transparently passes the object to/from the ORC file reader/writer. */ @SerDeSpec(schemaProps = {serdeConstants.LIST_COLUMNS, serdeConstants.LIST_COLUMN_TYPES, OrcSerde.COMPRESSION}) -public class OrcSerde extends VectorizedSerde { - - private static final Logger LOG = LoggerFactory.getLogger(OrcSerde.class); +public class OrcSerde extends AbstractSerDe { private final OrcSerdeRow row = new OrcSerdeRow(); private ObjectInspector inspector = null; - private VectorizedOrcSerde vos = null; - public static final String COMPRESSION = "orc.compress"; + static final String COMPRESSION = "orc.compress"; final class OrcSerdeRow implements Writable { Object realRow; @@ -87,14 +80,11 @@ public void initialize(Configuration conf, Properties table) { String columnTypeProperty = table.getProperty(serdeConstants.LIST_COLUMN_TYPES); final String columnNameDelimiter = table.containsKey(serdeConstants.COLUMN_NAME_DELIMITER) ? table .getProperty(serdeConstants.COLUMN_NAME_DELIMITER) : String.valueOf(SerDeUtils.COMMA); - String compressType = OrcConf.COMPRESS.getString(table, conf); // Parse the configuration parameters - ArrayList columnNames = new ArrayList(); + ArrayList columnNames = new ArrayList<>(); if (columnNameProperty != null && columnNameProperty.length() > 0) { - for (String name : columnNameProperty.split(columnNameDelimiter)) { - columnNames.add(name); - } + Collections.addAll(columnNames, columnNameProperty.split(columnNameDelimiter)); } if (columnTypeProperty == null) { // Default type: all string @@ -150,18 +140,4 @@ public SerDeStats getSerDeStats() { return null; } - @Override - public Writable serializeVector(VectorizedRowBatch vrg, ObjectInspector objInspector) - throws SerDeException { - if (vos == null) { - vos = new VectorizedOrcSerde(getObjectInspector()); - } - return vos.serialize(vrg, getObjectInspector()); - } - - @Override - public void deserializeVector(Object rowBlob, int rowsInBatch, VectorizedRowBatch reuseBatch) - throws SerDeException { - // nothing to do here - } } diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcSerde.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcSerde.java deleted file mode 100644 index f2295d6015..0000000000 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/VectorizedOrcSerde.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.hadoop.hive.ql.io.orc; - -import org.apache.hadoop.hive.ql.exec.vector.VectorizedRowBatch; -import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriter; -import org.apache.hadoop.hive.ql.exec.vector.expressions.VectorExpressionWriterFactory; -import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; -import org.apache.hadoop.hive.serde2.objectinspector.StructObjectInspector; -import org.apache.hadoop.io.ObjectWritable; -import org.apache.hadoop.io.Writable; - -/** - * A serde class for ORC. - * It transparently passes the object to/from the ORC file reader/writer. - */ -public class VectorizedOrcSerde extends OrcSerde { - private final OrcStruct [] orcStructArray = new OrcStruct [VectorizedRowBatch.DEFAULT_SIZE]; - private final Writable [] orcRowArray = new Writable [VectorizedRowBatch.DEFAULT_SIZE]; - private final ObjectWritable ow = new ObjectWritable(); - private final ObjectInspector inspector = null; - private final VectorExpressionWriter [] valueWriters; - - public VectorizedOrcSerde(ObjectInspector objInspector) { - super(); - for (int i = 0; i < orcStructArray.length; i++) { - orcRowArray[i] = new OrcSerdeRow(); - } - try { - valueWriters = VectorExpressionWriterFactory - .getExpressionWriters((StructObjectInspector) objInspector); - } catch (HiveException e) { - throw new RuntimeException(e); - } - } - - - @Override - public Writable serialize(Object obj, ObjectInspector inspector) { - VectorizedRowBatch batch = (VectorizedRowBatch) obj; - try { - for (int i = 0; i < batch.size; i++) { - OrcStruct ost = orcStructArray[i]; - if (ost == null) { - ost = new OrcStruct(batch.numCols); - orcStructArray[i] = ost; - } - int index = 0; - if (batch.selectedInUse) { - index = batch.selected[i]; - } else { - index = i; - } - for (int p = 0; p < batch.projectionSize; p++) { - int k = batch.projectedColumns[p]; - if (batch.cols[k].isRepeating) { - valueWriters[p].setValue(ost, batch.cols[k], 0); - } else { - valueWriters[p].setValue(ost, batch.cols[k], index); - } - } - OrcSerdeRow row = (OrcSerdeRow) orcRowArray[i]; - row.realRow = ost; - row.inspector = inspector; - } - } catch (HiveException ex) { - throw new RuntimeException(ex); - } - ow.set(orcRowArray); - return ow; - } -}