我知道有人问过类似的问题,但是我对配置单元表的select查询返回所有正确的列和一个额外的空列。
我已经创建了一个配置单元表,现在尝试使用select查询它
ddl地址:
表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
从家庭中选择姓名、薪水;
输出:
"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
如何仅获取用于查询的选定列?
1条答案
按热度按时间xmq68pz91#
它会将您的整行放在“名称”字段中。所有其他字段都为空。
因为这是第一个字段,所以我打赌文件中的分隔符不是代码中指定的分隔符。
您似乎有逗号分隔的数据,这不是配置单元表的默认值。
下面是一个关于声明表的正确语法的示例:https://stackoverflow.com/a/48616635