Hive(二)——数据类型与文件格式

Hive(二)——数据类型与文件格式

数据
  • 基本数据类型
    在这里插入图片描述

  • 集合数据类型
    在这里插入图片描述

  • 分隔符
    在这里插入图片描述

# 数据:
John Doe^A100000.0^AMary Smith^BTodd Jones^AFederal Taxes^C.2^BStateTaxes^C.05^ BInsurance^C.1^A1 Michigan Ave.^BChicago^BIL^B60600

{
 "name": "John Doe",
 "salary": 100000.0,
 "subordinates": ["Mary Smith", "Todd Jones"],
 "deductions": {
  "Federal Taxes":  .2,
  "State Taxes":   .05,
  "Insurance":    .1
 },
 "address": {
  "street": "1 Michigan Ave.",
  "city": "Chicago",
  "state": "IL",
  "zip": 60600
 }
}
# 例:
CREATE TABLE employees (
 name      STRING,
 salary      FLOAT,
 subordinates ARRAY<STRING>,
 deductions   MAP<STRING, FLOAT>,
 address   STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>)
ROW FORMAT DELIMITED  # ROW FORMAT DELIMITED这组关键字必须要写在其他子句(除了STORED AS ... 子句)之前
FIELDS TERMINATED BY '\001'
COLLECTION ITEMS TERMINATED BY '\002'
MAP KEYS TERMINATED BY '\003'
LINES TERMINATED BY '\n'  # 子句LINES TERMINATED BY '…'和STORED AS …不需要ROW FORMAT DELIMITED关键字
STORED AS TEXTFILE;  # Hive到目前为止对于LINESTERMINATED BY …仅支持字符‘\n’,也就是说行与行之间的分隔符只能为‘\n’
  • 如果一个表表结构指定三个字段,而数据文件有五列,则后两列会被舍弃

  • 如果某些字段是数值型的,但是Hive在读取时发现存在非数值型的字符串值的话,那么对于那些字段将会返回null值。————读时模式

  • 如果数据库非常多的话,那么可以使用正则表达式匹配来筛选出需要的数据库名

    hive >show databases like 'h.*';
    
  • 建库语句使用LOCATION关键字可指定数据库位置(默认hive.metastore.warehouse.dir)

    hive> CREATE DATABASE financials
       > LOCATION '/my/preferred/directory';
    
  • 默认情况下,Hive是不允许用户删除一个包含有表的数据库的。用户要么先删除数据库中的表,然后再删除数据库;要么在删除命令的最后面加上关键字CASCADE,这样可以使Hive自行先删除数据库中的表

    hive > DROP DATABASE IF EXISTS finacials CASCADE;
    
  • 用户可以使用ALTER DATABASE命令为某个数据库的DBPROPERTIES设置键-值对属性值,来描述这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置

    hive > ALTER DATABASE financials SET DBPROPERTIES ('edited-by' = 'Joe Dba');
    

猜你喜欢

转载自blog.csdn.net/weixin_45639174/article/details/114366859
今日推荐