将sql server表Map到parquet表时出错。我制作了parquet表来匹配sqlserver表和相应的列数据类型。
但sqoop将timestamp列推断为long。这会在将数据加载到Parquet表时产生问题。将数据加载到parquet似乎是成功的,但获取是一个问题。
错误消息:
hive> select updated_at from bkfs.address_par1;
OK
Failed with exception java.io.IOException:org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.ClassCastException: org.apache.hadoop.io.LongWritable cannot be cast to org.apache.hadoop.hive.serde2.io.TimestampWritable
Time taken: 0.146 seconds
2条答案
按热度按时间b91juud31#
sqoop parquet import将日期和时间戳oracle数据类型解释为long。它试图以unix epoch格式获取日期。所以,导入可以如下处理,
km0tfn4u2#
你可以看看下面已经贴出来的问题,
{sqoop函数--map column hive'被忽略}