http://hive.apache.org/
Create Table
row_format
: DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]] [COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]
[NULL DEFINED AS char] -- (Note: Available in Hive 0.13 and later)
| SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]
创建表时可以通过确定分割符方式用load读取数据
例:
CREATE TABLE test(
id int,
name string,
likes array<string>,
address map<string,string>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
COLLECTION ITEMS TERMINATED BY '-'
MAP KEYS TERMINATED BY ':'
LINES TERMINATED BY '\n';
数据样例:
1,小明1,101-book-movie,beijing:shangxuetang-shanghai:pudong
2,小明2,101-book-movie,beijing:shangxuetang-shanghai:pudong
3,小明3,1o1-book-movie,beijing:shangxuetang-shanghai:pudong
4,小明4,101-book-movie,beijing:shangxuetang-shanghai:pudong
5,小明5,1o1-movie,beijing:shangxuetang-shanghai:pudong
6,小明6,101-book-movie,beijing:shangxuetang-shanghai:pudong
7,小明7,101-book,beijing:shangxuetang-shanghai:pudong
8,小明8,101-book,beijing:shangxuetang-shanghai:pudong
9,小明9,101-book-movie,beijing:shangxuetang-shanghai:pudong
查询表中的数据:
- 数组元素:
select likes[0] from test where name="小明1";
数组元素名字后面跟数组的序号 - Map元素:
select address['keyValue'] from test where name="小明1";
Map类型名字后面跟key的值 - struct元素(样例中没有):用.取值
select yourStruct.name from test;
通过struct名.属性名的方式取值
优化hive显示:
在hive-site.xml中添加以下参数,就可以实现显示当前数据库&#x