Hive Table 输出在查询时显示一个不存在的 Null 值
Hive Table output shows one non existent Null values when Queried
我知道有人问过类似的问题,但是我的 Select 查询 FOR THE HIVE TABLE returns 所有正确的列和一个额外的 NULL 列。
我创建了一个 HIVE TABLE,现在尝试使用 SELECT
查询它
DDL :
Table DDL :
CREATE TABLE IF NOT EXISTS family (name STRING COMMENT 'Member Name',
Age INT COMMENT 'Age of the Member',
floor INT COMMENT 'Residence floor',
salary float COMMENT 'per month salary',
birthplace STRING COMMENT 'State of birth',
education STRING,
gender STRING )
COMMENT 'basic details of fmaily members'
LOCATION " /user/hive/warehouse/family/MANJREKAR"
TBLPROPERTIES ('creator'='Sarang', 'created_at'='2019-10-06 14:00:00') ;
DML :
LOAD DATA LOCAL INPATH '/Users/tcssig/Documents/Hive/warehouse/Imports' OVERWRITE INTO TABLE family;
要加载的数据
A 50 3 90000 Maharshtra UG M
B 46 3 40000 Maharshtra UG F
C 15 3 0 MP HS F
D 24 3 10000 Maharshtra PG F
E 85 3 7000 Maharshtra HS F
F 28 2 60000 MP UG M
G 59 2 60000 Maharshtra UG M
H 21 2 0 MP HS F
I 28 2 25000 Maharshtra PHD F
J 32 1 30000 Maharshtra PG M
K 26 1 0 MP UG F
L 58 1 55000 Maharshtra UG F
M 63 1 25000 Maharshtra UG M
SELECT姓名,家庭工资;
输出:
"A",50,3,90000,"Maharshtra","UG","M" NULL
"B",46,3,40000,"Maharshtra","UG","F" NULL
"C",15,3,0,"MP","HS","F" NULL
"D",24,3,10000,"Maharshtra","PG","F" NULL
"E",85,3,7000,"Maharshtra","HS","F" NULL
"F",28,2,60000,"MP","UG","M" NULL
"G",59,2,60000,"Maharshtra","UG","M" NULL
"H",21,2,0,"MP","HS","F" NULL
"I",28,2,25000,"Maharshtra","PHD","F" NULL
"J",32,1,30000,"Maharshtra","PG","M" NULL
"K",26,1,0,"MP","UG","F" NULL
"L",58,1,55000,"Maharshtra","UG","F" NULL
"M",63,1,25000,"Maharshtra","UG","M" NULL
如何只获取查询的选定列?
您的整行似乎都进入了名称字段。所有其他字段均为 Null。
因为这是第一个字段,我敢打赌你在文件中的分隔符不是你在代码中指定的。
您似乎有逗号分隔的数据,这不是 Hive tables 的默认设置。
在此处查看有关声明 table 的正确语法的示例:
我知道有人问过类似的问题,但是我的 Select 查询 FOR THE HIVE TABLE returns 所有正确的列和一个额外的 NULL 列。
我创建了一个 HIVE TABLE,现在尝试使用 SELECT
查询它DDL :
Table DDL :
CREATE TABLE IF NOT EXISTS family (name STRING COMMENT 'Member Name',
Age INT COMMENT 'Age of the Member',
floor INT COMMENT 'Residence floor',
salary float COMMENT 'per month salary',
birthplace STRING COMMENT 'State of birth',
education STRING,
gender STRING )
COMMENT 'basic details of fmaily members'
LOCATION " /user/hive/warehouse/family/MANJREKAR"
TBLPROPERTIES ('creator'='Sarang', 'created_at'='2019-10-06 14:00:00') ;
DML :
LOAD DATA LOCAL INPATH '/Users/tcssig/Documents/Hive/warehouse/Imports' OVERWRITE INTO TABLE family;
要加载的数据
A 50 3 90000 Maharshtra UG M
B 46 3 40000 Maharshtra UG F
C 15 3 0 MP HS F
D 24 3 10000 Maharshtra PG F
E 85 3 7000 Maharshtra HS F
F 28 2 60000 MP UG M
G 59 2 60000 Maharshtra UG M
H 21 2 0 MP HS F
I 28 2 25000 Maharshtra PHD F
J 32 1 30000 Maharshtra PG M
K 26 1 0 MP UG F
L 58 1 55000 Maharshtra UG F
M 63 1 25000 Maharshtra UG M
SELECT姓名,家庭工资;
输出:
"A",50,3,90000,"Maharshtra","UG","M" NULL
"B",46,3,40000,"Maharshtra","UG","F" NULL
"C",15,3,0,"MP","HS","F" NULL
"D",24,3,10000,"Maharshtra","PG","F" NULL
"E",85,3,7000,"Maharshtra","HS","F" NULL
"F",28,2,60000,"MP","UG","M" NULL
"G",59,2,60000,"Maharshtra","UG","M" NULL
"H",21,2,0,"MP","HS","F" NULL
"I",28,2,25000,"Maharshtra","PHD","F" NULL
"J",32,1,30000,"Maharshtra","PG","M" NULL
"K",26,1,0,"MP","UG","F" NULL
"L",58,1,55000,"Maharshtra","UG","F" NULL
"M",63,1,25000,"Maharshtra","UG","M" NULL
如何只获取查询的选定列?
您的整行似乎都进入了名称字段。所有其他字段均为 Null。
因为这是第一个字段,我敢打赌你在文件中的分隔符不是你在代码中指定的。
您似乎有逗号分隔的数据,这不是 Hive tables 的默认设置。
在此处查看有关声明 table 的正确语法的示例: