Hello,
I have following issue. I have created parquet file through cascading parquet and want to load into the hive table. My datafile contain data of type timestamp. Cascading parquet does not support timestamp data type , so while creating parquet file I have given as binary type. After generating parquet file , this Parquet file is loaded successfully in the hive . While creating hive table I have given the column type as timestamp. Code : package com.parquet.TimestampTest; import cascading.flow.FlowDef; import cascading.flow.hadoop.HadoopFlowConnector; import cascading.pipe.Pipe; import cascading.scheme.Scheme; import cascading.scheme.hadoop.TextDelimited; import cascading.tap.SinkMode; import cascading.tap.Tap; import cascading.tap.hadoop.Hfs; import cascading.tuple.Fields; import parquet.cascading.ParquetTupleScheme; public class GenrateTimeStampParquetFile { static String inputPath = "target/input/timestampInputFile1"; static String outputPath = "target/parquetOutput/TimestampOutput"; public static void main(String[] args) { write(); } private static void write() { // TODO Auto-generated method stub Fields field = new Fields("timestampField").applyTypes(String.class); Scheme sourceSch = new TextDelimited(field, false, "\n"); Fields outputField = new Fields("timestampField"); Scheme sinkSch = new ParquetTupleScheme(field, outputField, "message TimeStampTest{optional binary timestampField ;}"); Tap source = new Hfs(sourceSch, inputPath); Tap sink = new Hfs(sinkSch, outputPath, SinkMode.REPLACE); Pipe pipe = new Pipe("Hive timestamp"); FlowDef fd = FlowDef.flowDef().addSource(pipe, source).addTailSink(pipe, sink); new HadoopFlowConnector().connect(fd).complete(); } } Input file: timestampInputFile1 timestampField 1988-05-25 15:15:15.254 1987-05-06 14:14:25.362 After running the code following files are generated. Output : 1. part-00000-m-00000.parquet 2. _SUCCESS 3. _metadata 4. _common_metadata I have created the table in hive to load the part-00000-m-00000.parquet file. I have written following query in the hive. Query : hive> create table test3(timestampField timestamp) stored as parquet; hive> load data local inpath '/home/hduser/parquet_testing/part-00000-m-00000.parquet' into table test3; hive> select * from test3; After running above command I got following as output. Output : OK SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException: org.apache.hadoop.io.BytesWritable cannot be cast to org.apache.hadoop.hive.serde2.io.TimestampWritable But I have got above exception. So please help me to solve this problem. Currently I am using Hive 1.1.0-cdh5.4.2. Cascading 2.5.1 parquet-format-2.2.0 Thanks Santlal J. Gupta **************************************Disclaimer****************************************** This e-mail message and any attachments may contain confidential information and is for the sole use of the intended recipient(s) only. Any views or opinions presented or implied are solely those of the author and do not necessarily represent the views of BitWise. If you are not the intended recipient(s), you are hereby notified that disclosure, printing, copying, forwarding, distribution, or the taking of any action whatsoever in reliance on the contents of this electronic information is strictly prohibited. If you have received this e-mail message in error, please immediately notify the sender and delete the electronic message and any attachments.BitWise does not accept liability for any virus introduced by this e-mail or any attachments. ********************************************************************************************