gpt4 book ai didi

Hadoop - 在没有定界符的情况下定义和处理数据,某些列之间没有空格/空格

转载 作者:可可西里 更新时间:2023-11-01 16:26:06 24 4
gpt4 key购买 nike

我是 hadoop 的新手,正在尝试在配置单元中导入文件。我使用的源数据在某些列之间没有分隔符。

例子:

0000856214AB25    256 T PL1423AS ......
2563458547CD12 748 S AK2523YU ... and so on...

我已经从大型机以 txt 格式导入了这个文件。我有固定字符数的字段第一列(1-10),第二列(11-12),第三列(13-14))

我想要的结果是读取这个原始数据如下:

   1st column - 0000856214
2nd column - AB
3rd column - 25
4th column - 256
5th column - T
6th column - PL
7th column - 1423AS

如何使用 hive 导入这些数据?

最佳答案

你能试试这个吗?

输入.txt

0000856214AB25    256 T PL1423AS
2563458547CD12 748 S AK2523YU

使用正则表达式创建 Hive 表:

hive> CREATE TABLE test_regex(
>f1 STRING,f2 STRING,
>f3 STRING,f4 STRING,
>f5 STRING,f6 STRING,
>f7 STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
>WITH SERDEPROPERTIES ("input.regex" =
>"([0-9]{10})([A-Z]{2})([0-9]{2})\\s+([0-9]{3})\\s+([A-Z]{1})\\s+([A-Z]{2})([A-Z0-9]{6})",
>"output.format.string" = "%1$s %2$s %3$s %4$s %5s %6s %7s")
>STORED AS TEXTFILE;
OK
Time taken: 0.056 seconds

数据加载:

hive> load data local inpath 'input.txt' overwrite into table test_regex;
OK
Time taken: 0.183 seconds

列选择:

hive> select f1,f3,f5,f7 from test_regex;
OK
0000856214 25 T 1423AS
2563458547 12 S 2523YU

hive> select *from test_regex;
OK
0000856214 AB 25 256 T PL 1423AS
2563458547 CD 12 748 S AK 2523YU
Time taken: 0.094 seconds

关于Hadoop - 在没有定界符的情况下定义和处理数据,某些列之间没有空格/空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27101878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com