目录
3、文件类型和压缩格式不对(ORC、TEXTFILE...)
hive建表ddl:
- create table table_name(
-
- a bigint,
-
- b string
-
- )
-
- comment 'xx表'
- partitioned by (`ds` string) ;
datax自定义json:
- {
- "job": {
- "content": [
- {
- "reader": {
- "name": "postgresqlreader",
- "parameter": {
- "connection": [
- {
- "jdbcUrl": ["jdbc:postgresql://ip:host/db"],
- "querySql": ["select a,b from table_name"],
- }
- ],
- "username": "name",
- "password": "pwd"
- }
- },
- "writer": {
- "name": "hdfswriter",
- "parameter": {
- "defaultFS": "hdfs://ip:host",
- "fileType": "text",
- "path": "/user/hive/warehouse/db.db/table_name/ds=${ds}",
- "fileName": "table_name",
- "column": [
- {"name":"a","type":"bigint"},
- {"name":"b","type":"string"}
- ],
- "writeMode": "append",
- "fieldDelimiter": "\t",
- "encoding": "utf-8"
- }
- }
- }],
- "setting": {
- "speed": {
- "channel": "1"
- }
- }
- }
- }
执行后在hue上查询该表数据发现所有数据都为null

可能原因如下:
1.建表分隔符和导入时的分隔符不一致
2.字段的数据类型不一致
3.文件类型和压缩格式不对(ORC、TEXTFILE...)
4.字段值包含了分隔符,可以换一个分隔符试试
alter table ds.ods_user_info_dd set serdeproperties('field.delim'='\t');
- create table table_name(
-
- a bigint,
-
- b string
-
- )
-
- comment 'xx表'
- partitioned by (`ds` string)
- row format delimited fields terminated by '\t';

修改字段类型与源表一致
alter table 表名 change column 原字段名 现字段名 字段类型;
- --修改为ORC格式
-
- ALTER TABLE 表名 SET FILEFORMAT ORC
-
- --修改为Text
-
- ALTER TABLE 表名 SET FILEFORMAT TEXTFILE