我在HDFS中有一个固定长度的文件,我必须使用正则表达式创建外部表。 我的文件是这样的:
12piyush34stack10
13pankaj21abcde41
我希望它将其转换为如下表格:
key_column Value_column
---------- -----------------
1234stack 12piyush34stack10
1321stack 13pankaj21abcde41
我甚至尝试使用insert使用substr但是我无法指向key_columns。 请帮助解决这个问题。
答案 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中解释。