hive load数据时如何设定为分隔符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive load数据时如何设定为分隔符?相关的知识,希望对你有一定的参考价值。

参考技术A hive load数据只是单纯的把文件拷贝到hdfs的相应目录下面,并不作格式检查和解析\\x0d\\x0a只有在查询数据的时候,才会根据创建表时定义的序列化方式解析数据\\x0d\\x0a建表的时候可以指定分隔符\\x0d\\x0a\\x0d\\x0acreate table test(t1 String,t2 String,t3 String,t4 String,t5 String,t6 String,t7 String,t8 String,t9 String,t10 String)\\x0d\\x0arow format delimited fields terminated by \'\|\'

在hive中遇到的错误

1:如果在将文件导入到hive表时,查询结果为null(下图)


这个是因为在创建表的时候没有指定列分隔符,hive的默认分隔符是ctrl+a(/u0001)
 
2.当我复制好几行sql到hive命令行时,会出现下面情况,导致复制失败
这个是因为我的sql中有tab的缩进,将tab的空格去掉即可
 
3.当我在使用load加载数据是,抛出filad
hive> LOAD DATA LOCAL INPATH \'/home/node4/Desktop/sutdent.txt\' OVERWRITE INTO TABLE student_3;
FAILED: SemanticException Unable to load data to destination table. Error: The file that you are trying to load does not match the file format of the destination table.
这是因为SequenceFile的表不能使用load来加载数据
 
 
4.如果在从hdfs上导出数据到hive表报如下错误:
FAILED: SemanticException Line 1:17 Invalid path \'\'hdfs://Master:9000/user/test/qar_test\'\': No files matching path hdfs://Master:9000/user/test/qar_test
这个是说路径错误,可以去mysql中查看一下
查询hive下的DBSDB_LOCATION_URI列:select DB_LOCATION_URI from DBS; 
+----------------------------------------+
| DB_LOCATION_URI |
+----------------------------------------+
| hdfs://10.1.51.200:9000/hive/warehouse |
+----------------------------------------+

 

 
5.
在使用eclipse链接hive时,总是报time out connection,这个是因为我服务器的防火墙没关闭
 
6.报一下错误,需要配置hadoop-core.xml文件
Caused by: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): Unauthorized connection for super-user: root from IP 192.168.177.124
添加如下配置
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
 
 
 

以上是关于hive load数据时如何设定为分隔符?的主要内容,如果未能解决你的问题,请参考以下文章

hive 在 load data 时,能指定加载的文件使用的列分隔符吗

Hive 'Load' 命令不考虑字段分隔符

Hive基础之Hive是啥以及Hive使用场景

Hive知识点

hive获取多个分区表的数据与其他数据库有啥异同?

使用 create-hive-table 在 Hive 中创建表时如何使用自定义分隔符