将文件记录到配置单元中

5sxhfpxr  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(280)

我有一个日志文件“sample.log”,如下所示:

41 Texas 2000
42 Louisiana4 3211
43 Texas 5000
22 Iowa 4998p

在日志文件中,第一列是id,第二列是state name,第三列是amount。如果你看到州名它有路易斯安那4和销售总额它有4998便士。如何清理它,以便将其插入到配置单元中(使用python或其他方式?)。你能指一下台阶吗?
我想在配置单元表tblsample中插入:
表架构是:

CREATE  TABLE tblSample(
id int, 
state string, 
sales int)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
LOCATION '/user/cloudera/Staging'
;

要将数据加载到配置单元表中,我可以执行以下操作:

load data local inpath '/home/cloudera/sample.log' into table tblSample;

谢谢您!

ufj5ltwl

ufj5ltwl1#

我宁愿按原样存储数据,并在获取数据时进行清理。那就简单多了。不需要外部代码。例如:

hive> CREATE  TABLE tblSample( 
    > id string,
    > state string, 
    > sales string)
    > ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
    > STORED AS TEXTFILE
    > LOCATION '/user/cloudera/Staging';

hive> select regexp_replace(state, "[0-9]", ""), regexp_replace(sales, "[a-z]", "") from tblSample;

hth公司

djmepvbi

djmepvbi2#

可以按原样将数据加载到配置单元表中,然后使用UDF清理数据并加载到另一个表中。这将比python更有效,因为它将作为maprreduce运行。

相关问题