title: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow
body: <p>I am trying to get the compression to work. </p>
  
  <p>Original Table defined as :</p>
  
  <pre><code>create external table orig_table (col1 String ...... coln String) 
  .
  .
  .
  partitioned by (pdate string)
  ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
  WITH SERDEPROPERTIES ( "separatorChar" = "|")
  STORED AS TEXTFILE location '/user/path/to/table/';
  </code></pre>
  
  <p>The table orig_table has about 10 partitions with 100 rows each</p>
  
  <p>To compress it, I have created a similar table with the only modification from TEXTFILE to ORCFILE</p>
  
  <pre><code>create external table orig_table_orc (col1 String ...... coln String) 
  .
  .
  .
  partitioned by (pdate string)
  ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
  WITH SERDEPROPERTIES ( "separatorChar" = "|")
  STORED AS ORCFILE location '/user/path/to/table/';
  </code></pre>
  
  <p>Trying to copy the records across by:</p>
  
  <pre><code>set hive.exec.dynamic.partition.mode=nonstrict;
  set mapred.output.compress=true;
  set mapred.output.compression.codec=org.apache.hadoop.io.compress.LzoCodec;
  [have tried with other codecs as well, with same error]
  set mapred.output.compression.type=RECORD;
  insert overwrite table zip_test.orig_table_orc partition(pdate) select * from default.orgi_table;
  </code></pre>
  
  <p>The error I get is:</p>
  
  <pre><code>Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive Runtime Error while processing row {"col1":value ... "coln":value}
          at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:503)
          at org.apache.hadoop.hive.ql.exec.mr.ExecMapper.map(ExecMapper.java:176)
          ... 8 more
  Caused by: java.lang.ClassCastException: org.apache.hadoop.io.Text cannot be cast to org.apache.hadoop.hive.ql.io.orc.OrcSerde$OrcSerdeRow
          at org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat$OrcRecordWriter.write(OrcOutputFormat.java:81)
          at org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:689)
          at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
          at org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
          at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:815)
          at org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:95)
          at org.apache.hadoop.hive.ql.exec.MapOperator$MapOpCtx.forward(MapOperator.java:157)
          at org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:493)
          ... 9 more
  
  Container killed by the ApplicationMaster.
  Container killed on request. Exit code is 143
  Container exited with a non-zero exit code 143
  
  
  FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask
  MapReduce Jobs Launched:
  Stage-Stage-1: Map: 3   HDFS Read: 0 HDFS Write: 0 FAIL
  Total MapReduce CPU Time Spent: 0 msec
  </code></pre>
  
  <p>Same thing works if I make the hive table as a SEQUENCEFILE - not with ORC, any work around? I have seen a couple of questions that have the same error but in a Java program and not Hive QL</p>