impala插入数据的时候,出现报错:
[hs-170:21000] > insert into test_abc(fund_account, client_name, client_sex) values('1234567890123456789001', 'name1', '0');
Query: insert into test_abc(fund_account, client_name, client_sex) values('1234567890123456789001', 'name1', '0')
ERROR: AnalysisException: Possible loss of precision for target table 'wt_tmp.test_abc'.
Expression ''1234567890123456789001'' (type: STRING) would need to be cast to VARCHAR(32) for column 'fund_account'
出现这类错误的时候,你就看报错,它说把某个字段转成什么就把某个字段转成什么。上述报错中提示:
(type: STRING) would need to be cast to VARCHAR(32) for column 'fund_account'
意思是:这个输入格式为STRING
的字段fund_account'
字段需转换成格式VARCHAR(32)
。
来看下表test_abc的结构:
[hs-170:21000] > show create table test_abc;
Query: show create table test_abc
+-------------------------------------------------------------------------------+
| result |
+-------------------------------------------------------------------------------+
| CREATE TABLE wt_tmp.test_abc ( |
| fund_account VARCHAR(32) COMMENT 'fund_account', |
| client_name VARCHAR(64) COMMENT 'client_name', |
| client_sex VARCHAR(32) COMMENT 'client_sex' |
| ) |
| STORED AS TEXTFILE |
| LOCATION 'hdfs://hs-171:xxx/user/xxx/wt_tmp.db/test_abc' |
| TBLPROPERTIES ('transient_lastDdlTime'='1542874679') |
+-------------------------------------------------------------------------------+
接下来执行改造过的插入语句:
insert into test_abc(fund_account, client_name, client_sex) values(cast(001 as VARCHAR(32)), cast('name1' as varchar(64)), cast(0 as varchar(32)));
insert into test_abc(fund_account, client_name, client_sex) values(cast(002 as VARCHAR(32)), cast('name2' as varchar(64)), cast(0 as varchar(32)));
insert into test_abc(fund_account, client_name, client_sex) values(cast(003 as VARCHAR(32)), cast('name3' as varchar(64)), cast(1 as varchar(32)));
insert into test_abc(fund_account, client_name, client_sex) values(cast(004 as VARCHAR(32)), cast('name4' as varchar(64)), cast(1 as varchar(32)));
insert into test_abc(fund_account, client_name, client_sex) values(cast(005 as VARCHAR(32)), cast('name5' as varchar(64)), cast(0 as varchar(32)));
insert into test_abc(fund_account, client_name, client_sex) values(cast(006 as VARCHAR(32)), cast('name6' as varchar(64)), cast(2 as varchar(32)));
查看数据:
[hs-170:21000] > select * from test_abc;
Query: select * from test_abc
+--------------+-------------+------------+
| fund_account | client_name | client_sex |
+--------------+-------------+------------+
| 2 | name2 | 0 |
| 1 | name1 | 0 |
| 6 | name6 | 2 |
| 5 | name5 | 0 |
| 4 | name4 | 1 |
| 3 | name3 | 1 |
+--------------+-------------+------------+
Fetched 6 row(s) in 1.29s
插入成功。
上述SQL为单条插入,也可以一次插入多条(与mysql插入方式一致):
insert into test_abc(fund_account, client_name, client_sex) values(cast(007 as VARCHAR(32)), cast('name7' as varchar(64)), cast(2 as varchar(32))),(cast(008 as VARCHAR(32)), cast('name8' as varchar(64)), cast(0 as varchar(32)));
impala插入数据的时候,出现报错:[hs-170:21000] > insert into test_abc(fund_account, client_name, client_sex) values('1234567890123456789001', 'name1', '0');Query: insert into test_abc(fund_account, client_nam...
Overview
Evaluating a model is a core part of building an effective machine learning model
There are several evaluation metrics, like confusion matrix, cross-validation, AUC-R
以下试验证明各自特点。
create table t1_t ( start_time timestamp ,cdr_id decimal(14,1)) stored as parquet;
create table t1...
ERROR: AnalysisException: Possible loss of precision for target table 'test.student'.
Expression ''e'' (type: STRING) would need to be cast to VARCHAR(22) for column 'name'
解决办法:
向Impala里Insert数据时报错:(type: STRING) would need to be cast to VARCHAR(100) for column
原SQL
INSERT INTO CTS.attribute (id ,attCode)VALUES (2 , 'supplier');
执行时报错:
AnalysisException: Possible loss...
没有启动hadoop集群,执行flink的bin/yarn-session.sh脚本会报下面错误
脚本会一直卡在这里,一直输出重试日志,连不上resoucemanager,说明hadoop集群每启动,解决方案:启动hadoop集群即可
Hive、Spark SQL和Impala都是大数据处理领域中的SQL查询工具,它们的主要区别如下:
1. Hive是基于Hadoop的数据仓库工具,它使用HiveQL语言进行查询和分析。Hive的优点是可以处理大规模数据,但是查询速度较慢。
2. Spark SQL是基于Spark的SQL查询工具,它可以在内存中处理数据,因此查询速度比Hive快。Spark SQL还支持多种数据源,包括Hive、JSON、Parquet等。
3. Impala是基于Hadoop的实时SQL查询工具,它可以在秒级别内查询PB级别的数据。Impala的优点是查询速度快,但是它不支持所有的HiveQL语法。
综上所述,选择哪种工具取决于具体的需求和场景。如果需要处理大规模数据,可以选择Hive;如果需要快速查询数据,可以选择Spark SQL或Impala。