创建用于处理固定长度文件的配置单元表

4urapxun  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(344)

我在hdfs中有一个固定长度的文件,在这个文件之上我必须使用regex创建外部表。我的文件是这样的:

12piyush34stack10
13pankaj21abcde41

我想把它转换成一个表,比如:

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

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

nfs0ujit

nfs0ujit1#

我不知道你为什么用regexp外部表,但方法不能锻炼,所以还需要使用另一个子串操作。
如果是我,我将创建一个regexp serde表,然后创建两列(key\u column、value\u column),只需指定serde选项,如下所示:
serde'org.apache.hadoop.hive.serde2.regexserde'
使用serdeproperty(

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

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

)
output选项将按顺序将空格分隔的数据写入相应的列。
还没有测试它,请注意反斜杠在java中可能没有正确的解释。

相关问题