我想从我的 map reduce 作业中读取托管 Hive 表数据。我有一个托管 Hive 表,它是从另一个表创建的,该表是从外部配置单元表创建的。我想在我的最终托管 Hive 表上运行 map reduce 作业。我读到托管表有一个分隔符,默认为“char 1”ASCII 字符。所以我这样做了:
public static final String SEPARATOR_FIELD = new String(new char[] {1});
后来我在一个循环中做了这个:
end = rowTextObject.find(SEPARATOR_FIELD, start);
但是当我运行 map reduce jar 时,我在上面的行和下面给出的行中得到 Illegal Argument 异常:
public void map(LongWritable key, Text rowTextObject, Context context) throws IOException, InterruptedException
PS:我在 github 上查找了一个项目,用于在 mapreduce 作业中读取托管配置单元表,但我无法理解 @ https://github.com/facebook/hive-io-experimental。