Logging 解析配置单元中的自定义日志
我是新来的蜂巢。 我有一个以“\t”分隔的日志文件, 例子: A\tB\tC\tD\tE\tF… 我想在此基础上创建一个外部表,我可以使用[FIELD separated BY“\t”]但是Logging 解析配置单元中的自定义日志,logging,hadoop,hive,Logging,Hadoop,Hive,我是新来的蜂巢。 我有一个以“\t”分隔的日志文件, 例子: A\tB\tC\tD\tE\tF… 我想在此基础上创建一个外部表,我可以使用[FIELD separated BY“\t”]但是 我不需要所有的列,我只需要很少的列,例如1,3 一列有负值,我希望它转换为正值 假设日志文件中有以下数据(以“\t”分隔): 对于第一个要求,默认配置单元加载程序将读取您指定的列。比如说, CREATE EXTERNAL TABLE IF NOT EXISTS test ( c1 STRING, c2 I
- 我不需要所有的列,我只需要很少的列,例如1,3
- 一列有负值,我希望它转换为正值
CREATE EXTERNAL TABLE IF NOT EXISTS test (
c1 STRING, c2 INT, c3 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/joe/test';
select c1, ABS(c2), c3 from test;
我们使用上面的语句创建一个表test
。如果某行是a\t123\tb\tc\td
,则配置单元将仅使用前3列。因此,您可以使用此功能剪切行末尾的无用列。如果您只需要使用“c2”和“c3”,您可以从test
表中选择这两列并忽略“c1”
对于第二个要求,可以使用ABS
。比如说,
CREATE EXTERNAL TABLE IF NOT EXISTS test (
c1 STRING, c2 INT, c3 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/joe/test';
select c1, ABS(c2), c3 from test;
上述语句将输出以下数据:
a 123 b
x 12 y
o 1 q
假设日志文件中有以下数据(以“\t”分隔): 对于第一个要求,默认配置单元加载程序将读取您指定的列。比如说,
CREATE EXTERNAL TABLE IF NOT EXISTS test (
c1 STRING, c2 INT, c3 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/joe/test';
select c1, ABS(c2), c3 from test;
我们使用上面的语句创建一个表test
。如果某行是a\t123\tb\tc\td
,则配置单元将仅使用前3列。因此,您可以使用此功能剪切行末尾的无用列。如果您只需要使用“c2”和“c3”,您可以从test
表中选择这两列并忽略“c1”
对于第二个要求,可以使用ABS
。比如说,
CREATE EXTERNAL TABLE IF NOT EXISTS test (
c1 STRING, c2 INT, c3 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/joe/test';
select c1, ABS(c2), c3 from test;
上述语句将输出以下数据:
a 123 b
x 12 y
o 1 q