org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe Java Examples
The following examples show how to use
org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HiveCatalogUtil.java From tajo with Apache License 2.0 | 5 votes |
public static String getDataFormat(StorageDescriptor descriptor) { Preconditions.checkNotNull(descriptor); String serde = descriptor.getSerdeInfo().getSerializationLib(); String inputFormat = descriptor.getInputFormat(); if (LazySimpleSerDe.class.getName().equals(serde)) { if (TextInputFormat.class.getName().equals(inputFormat)) { return BuiltinStorages.TEXT; } else if (SequenceFileInputFormat.class.getName().equals(inputFormat)) { return BuiltinStorages.SEQUENCE_FILE; } else { throw new TajoRuntimeException(new UnknownDataFormatException(inputFormat)); } } else if (LazyBinarySerDe.class.getName().equals(serde)) { if (SequenceFileInputFormat.class.getName().equals(inputFormat)) { return BuiltinStorages.SEQUENCE_FILE; } else { throw new TajoRuntimeException(new UnknownDataFormatException(inputFormat)); } } else if (LazyBinaryColumnarSerDe.class.getName().equals(serde) || ColumnarSerDe.class.getName().equals(serde)) { if (RCFileInputFormat.class.getName().equals(inputFormat)) { return BuiltinStorages.RCFILE; } else { throw new TajoRuntimeException(new UnknownDataFormatException(inputFormat)); } } else if (ParquetHiveSerDe.class.getName().equals(serde)) { return BuiltinStorages.PARQUET; } else if (AvroSerDe.class.getName().equals(serde)) { return BuiltinStorages.AVRO; } else if (OrcSerde.class.getName().equals(serde)) { return BuiltinStorages.ORC; } else if (RegexSerDe.class.getName().equals(serde)) { return BuiltinStorages.REGEX; } else { throw new TajoRuntimeException(new UnknownDataFormatException(inputFormat)); } }
Example #2
Source File: HiveDialectITCase.java From flink with Apache License 2.0 | 5 votes |
@Test public void testCreateTable() throws Exception { String location = warehouse + "/external_location"; tableEnv.executeSql(String.format( "create external table tbl1 (d decimal(10,0),ts timestamp) partitioned by (p string) location '%s' tblproperties('k1'='v1')", location)); Table hiveTable = hiveCatalog.getHiveTable(new ObjectPath("default", "tbl1")); assertEquals(TableType.EXTERNAL_TABLE.toString(), hiveTable.getTableType()); assertEquals(1, hiveTable.getPartitionKeysSize()); assertEquals(location, locationPath(hiveTable.getSd().getLocation())); assertEquals("v1", hiveTable.getParameters().get("k1")); assertFalse(hiveTable.getParameters().containsKey(SqlCreateHiveTable.TABLE_LOCATION_URI)); tableEnv.executeSql("create table tbl2 (s struct<ts:timestamp,bin:binary>) stored as orc"); hiveTable = hiveCatalog.getHiveTable(new ObjectPath("default", "tbl2")); assertEquals(TableType.MANAGED_TABLE.toString(), hiveTable.getTableType()); assertEquals(OrcSerde.class.getName(), hiveTable.getSd().getSerdeInfo().getSerializationLib()); assertEquals(OrcInputFormat.class.getName(), hiveTable.getSd().getInputFormat()); assertEquals(OrcOutputFormat.class.getName(), hiveTable.getSd().getOutputFormat()); tableEnv.executeSql("create table tbl3 (m map<timestamp,binary>) partitioned by (p1 bigint,p2 tinyint) " + "row format serde 'org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe'"); hiveTable = hiveCatalog.getHiveTable(new ObjectPath("default", "tbl3")); assertEquals(2, hiveTable.getPartitionKeysSize()); assertEquals(LazyBinarySerDe.class.getName(), hiveTable.getSd().getSerdeInfo().getSerializationLib()); tableEnv.executeSql("create table tbl4 (x int,y smallint) row format delimited fields terminated by '|' lines terminated by '\n'"); hiveTable = hiveCatalog.getHiveTable(new ObjectPath("default", "tbl4")); assertEquals("|", hiveTable.getSd().getSerdeInfo().getParameters().get(serdeConstants.FIELD_DELIM)); assertEquals("|", hiveTable.getSd().getSerdeInfo().getParameters().get(serdeConstants.SERIALIZATION_FORMAT)); assertEquals("\n", hiveTable.getSd().getSerdeInfo().getParameters().get(serdeConstants.LINE_DELIM)); tableEnv.executeSql("create table tbl5 (m map<bigint,string>) row format delimited collection items terminated by ';' " + "map keys terminated by ':'"); hiveTable = hiveCatalog.getHiveTable(new ObjectPath("default", "tbl5")); assertEquals(";", hiveTable.getSd().getSerdeInfo().getParameters().get(serdeConstants.COLLECTION_DELIM)); assertEquals(":", hiveTable.getSd().getSerdeInfo().getParameters().get(serdeConstants.MAPKEY_DELIM)); }
Example #3
Source File: HiveDialectITCase.java From flink with Apache License 2.0 | 5 votes |
@Test public void testAlterPartition() throws Exception { tableEnv.executeSql("create table tbl (x tinyint,y string) partitioned by (p1 bigint,p2 date)"); tableEnv.executeSql("alter table tbl add partition (p1=1000,p2='2020-05-01') partition (p1=2000,p2='2020-01-01')"); CatalogPartitionSpec spec1 = new CatalogPartitionSpec(new LinkedHashMap<String, String>() {{ put("p1", "1000"); put("p2", "2020-05-01"); }}); CatalogPartitionSpec spec2 = new CatalogPartitionSpec(new LinkedHashMap<String, String>() {{ put("p1", "2000"); put("p2", "2020-01-01"); }}); ObjectPath tablePath = new ObjectPath("default", "tbl"); Table hiveTable = hiveCatalog.getHiveTable(tablePath); // change location String location = warehouse + "/new_part_location"; tableEnv.executeSql(String.format("alter table tbl partition (p1=1000,p2='2020-05-01') set location '%s'", location)); Partition partition = hiveCatalog.getHivePartition(hiveTable, spec1); assertEquals(location, locationPath(partition.getSd().getLocation())); // change file format tableEnv.executeSql("alter table tbl partition (p1=2000,p2='2020-01-01') set fileformat rcfile"); partition = hiveCatalog.getHivePartition(hiveTable, spec2); assertEquals(LazyBinaryColumnarSerDe.class.getName(), partition.getSd().getSerdeInfo().getSerializationLib()); assertEquals(RCFileInputFormat.class.getName(), partition.getSd().getInputFormat()); assertEquals(RCFileOutputFormat.class.getName(), partition.getSd().getOutputFormat()); // change serde tableEnv.executeSql(String.format("alter table tbl partition (p1=1000,p2='2020-05-01') set serde '%s' with serdeproperties('%s'='%s')", LazyBinarySerDe.class.getName(), serdeConstants.LINE_DELIM, "\n")); partition = hiveCatalog.getHivePartition(hiveTable, spec1); assertEquals(LazyBinarySerDe.class.getName(), partition.getSd().getSerdeInfo().getSerializationLib()); assertEquals("\n", partition.getSd().getSerdeInfo().getParameters().get(serdeConstants.LINE_DELIM)); }