Hive结果赋值给变量携带WARN信息问题

在大数据开发中,会有使用命令“hive - e sql”将对应的查询结果赋值给变量的情况,如果使用hive3.x版本执行 “hive -e sql”命令将结果赋值给变量时,由于“hive -e”会有WARN信息输出,会把所有信息都赋值给了变量。如,执行如下命令:

#执行如下hive查询
[root@node3 ~]# tag=`hive -e "set hive.exec.mode.local.auto=true;SELECT COUNT(*) FROM test" `

#打印tag结果
[root@node3 ~]# echo $tag
1
WARN: The method class org.apache.commons.logging.impl.SLF4JLogFactory#release() was invoked.
WARN: Please see http://www.slf4j.org/codes.html#release for an explanation.

以上WARN警告信息单独配置Hive日志并不能去除,可能由于由日志文件,系统日志,或者其他日志记录机制打印输出。可以通过grep 命令来去除WARN 信息的日志,按照如下步骤解决。

1. 配置hive log4j.properties

在hive客户端目录$HIVE_HOME/conf/中创建log4j.properties,内容如下,配置这个的目的是保证结果中没有hive相关日志输出。

log4j.rootLogger=ERROR,CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

2.脚本或者命令中通过grep将WARN日志过滤

[root@node3 ~]# tag=`hive -e "set hive.exec.mode.local.auto=true;SELECT COUNT(*) FROM test" 1 | grep -v "WARN:"`

这样再次打印tag就会发现WARN日志被去除:

[root@node3 ~]# echo $tag
1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当构建特征变量库时,我们可以使用Hive来创建表、导入数据、进行特征工程和提取特征。以下是一个简单的示例: 首先,我们创建一个特征表来存储数据: ``` CREATE TABLE feature_table ( id INT, feature1 DOUBLE, feature2 STRING, feature3 INT ); ``` 然后,我们可以使用LOAD DATA语句将数据导入到特征表。假设我们有一个数据文件`data.csv`,包含以下内容: ``` 1, 0.5, "A", 10 2, 0.8, "B", 15 3, 0.2, "C", 20 ``` 可以使用以下命令将数据导入到特征表: ``` LOAD DATA INPATH '/path/to/data.csv' INTO TABLE feature_table; ``` 接下来,我们可以进行特征工程处理。例如,我们可以计算新的特征`feature4`作为`feature1 * feature3`的乘积: ``` ALTER TABLE feature_table ADD COLUMNS (feature4 DOUBLE); INSERT INTO TABLE feature_table SELECT id, feature1, feature2, feature3, feature1 * feature3 AS feature4 FROM feature_table; ``` 然后,我们可以使用SELECT语句从特征表选择需要的特征变量。例如,选择`feature1`和`feature4`: ``` SELECT feature1, feature4 FROM feature_table; ``` 最后,如果你想将提取的特征存储到另一个表作为特征变量库,你可以使用CREATE TABLE语句创建一个新的表,并使用INSERT INTO语句将数据插入到该表。 这只是一个简单的示例,实际使用可能涉及更复杂的特征工程和数据处理。希望这个例子能帮助到你!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT贫道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值