我如何避免 Hive 表的第一个“字段名称”中的“NULL”
Posted
技术标签:
【中文标题】我如何避免 Hive 表的第一个“字段名称”中的“NULL”【英文标题】:How I avoid the "NULL" in the first "Field Name" of Hive table 【发布时间】:2017-04-26 10:23:58 【问题描述】:首先,我使用以下命令在 Hive 中创建了表“emp”:
create table emp (id INT, name STRING, address STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
然后通过以下命令加载此“emp”表中的数据: LOAD DATA LOCAL INPATH '\home\cloudera\Desktop\emp.txt' 覆盖到表emp中;
当我从“emp”表中选择数据时:它显示表 Null 的第一个字段 像这样:
【问题讨论】:
能分享一下emp.txt文件吗? 它是一个制表符分隔文件。 “id” “Name” “Address” 这些是字段。它显示“ID”字段NULL 您是否在您的文件中的数据中添加“”? 不,我没有在我的文件中使用“”。只需输入“列”名称和那些“列”的数据 附言。请用文字替换图片(用ctrl+k格式化) 【参考方案1】:您的文件中有一个标题行,第一个值id
无法转换为INT
,因此被NULL
替换。
将tblproperties ("skip.header.line.count"="1")
添加到您的表定义中
对于现有表 -
alter table emp set tblproperties ("skip.header.line.count"="1");
【讨论】:
我是否需要为此命令再次创建表“emp”或以任何其他方式添加它?? alter table empset tblproperties ("skip.header.line.count"="1");我一直在使用上面的命令它给了我一个错误:“无法识别'tblproperties'附近的输入” 错字。再次检查 当我写这个命令时 select * from emp;它没有显示列名?set hive.cli.print.header=true
以上是关于我如何避免 Hive 表的第一个“字段名称”中的“NULL”的主要内容,如果未能解决你的问题,请参考以下文章
需要表单上的按钮以将表的字段名称插入 Access 中的另一个表