1、資料檔案中,每一行的字段用@$_$@來區分,於是測試資料可以這樣:
1@$_$@xu@$_$@30@$_$@student
2、建立表的語句
create external table user_table (userid string,username string,age string,title string ) row format delimited fields terminated by '@$_$@';
3、匯入測試資料
load data local inpath /home/hadoop/xuguokun/test.txt into table user_table;
4、檢視資料
hive> select * from user_table;
ok1 $_$ xu $_$
time taken: 0.146 seconds, fetched: 1 row(s)
5、結果不像預期的那樣,顯然是不正確的。
6、調整字段之間的分割符,並建立新錶
create external table student_table (userid string,username string,age string,title string ) row format delimited fields terminated by ',';
7、匯入測試資料
load data local inpath /home/hadoop/xuguokun/test.txt into table student_table;
8、檢視資料
hive> select * from student_table;
ok1 xu 30 student
time taken: 0.172 seconds, fetched: 1 row(s)
9、怎麼一回事呢?
10、調整字段之間的分割符,並建立新錶
create external table teacher_table (userid string,username string,age string,title string ) row format delimited fields terminated by ',,';
11、匯入測試資料
load data local inpath /home/hadoop/xuguokun/test.txt into table teacher_table
;
12、檢視結果
hive> select * from teacher_table;
ok1 xu
time taken: 0.111 seconds, fetched: 1 row(s)
13、最終原因沒能確定,難道是分隔符不能是多個字元的組合?
Hive建表時指定分隔符或使用多字元分隔
不知道你是否會有會這樣的苦惱,就是從hdfs或者file中匯入資料到hive建數倉的時候,因為資料是資料流前段的小gg用特殊符號分隔的,然後導致你匯入資料時一臉矇圈?這篇教程可能會幫到你。首先我們明確,我們是在建表的時候就指定了匯入資料時的分隔符的,建表的時候會有三種場景需要考慮 1 正常建表 de...
使用hive建庫建表時提示如下錯誤的解決辦法
錯誤如下 解決辦法 登入linux上的mysql 安裝在哪一台就在哪一台上啟動 mysql uroot p 接著mysql drop database hive query ok,1 row affected 0.13 sec mysql create database hive query ok,...
資料庫建表時字段長度
2016 5 4 基本知識點 1.計算機儲存資訊的基本單位是位元組 2.乙個漢字佔兩個位元組,乙個字母或數字佔乙個位元組 3.字元 計算機中字,字母等的統稱 以char 6 為例 測試如下 測試環境 sql 8.0 create student 學號 char 6 not null primary ...