创建用于处理固定长度文件的Hive表

时间:2014-03-11 14:36:28

标签: hadoop hive hdfs

我在HDFS中有一个固定长度的文件,我必须使用正则表达式创建外部表。 我的文件是这样的:

12piyush34stack10
13pankaj21abcde41

我希望它将其转换为如下表格:

key_column   Value_column
----------   ----------------- 
1234stack    12piyush34stack10
1321stack    13pankaj21abcde41

我甚至尝试使用insert使用substr但是我无法指向key_columns。 请帮助解决这个问题。

1 个答案:

答案 0 :(得分:0)

我不知道为什么你使用了regexp外部表,但是这种方法无法进行锻炼,因此还需要使用另一个子字符串操作。

如果我,我会创建一个regexp serde表,然后创建两列(key_column,Value_column),并指定serde选项,如下所示:

  

SERDE' org.apache.hadoop.hive.serde2.RegexSerDe'

     

WITH SERDEPROPERTIES(

 "input.regex" ="(\d\d)\w{6}(\d\d).*",

 "output.format.string" = "%1$s%2$sstack %0$s"
     

输出选项会按顺序将空格分隔数据写入相应的列。

Haven尚未测试它,请注意反斜杠可能无法在java中解释。