Hive常用DML操作
This commit is contained in:
		| @@ -13,15 +13,12 @@ | |||||||
|  |  | ||||||
| ### 1.1 语法 | ### 1.1 语法 | ||||||
|  |  | ||||||
| 将文件数据加载到表时,Hive不会进行任何转换,加载操作是纯复制/移动操作,它将数据文件移动到Hive表定义的存储位置。 |  | ||||||
|  |  | ||||||
| ```shell | ```shell | ||||||
| LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]  | LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE]  | ||||||
| INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] | INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| - Load 关键字代表从本地文件系统加载文件,省略则代表从HDFS上加载文件: | - `LOCAL`关键字代表从本地文件系统加载文件,省略则代表从HDFS上加载文件: | ||||||
|  |  | ||||||
| + 从本地文件系统加载文件时, `filepath`可以是绝对路径也可以是相对路径(建议使用绝对路径); | + 从本地文件系统加载文件时, `filepath`可以是绝对路径也可以是相对路径(建议使用绝对路径); | ||||||
|    |    | ||||||
| + 从HDFS加载文件时候,`filepath`为文件完整的URL地址:如`hdfs://namenode:port/user/hive/project/ data1` | + 从HDFS加载文件时候,`filepath`为文件完整的URL地址:如`hdfs://namenode:port/user/hive/project/ data1` | ||||||
| @@ -36,7 +33,7 @@ INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] | |||||||
|  |  | ||||||
| > 使用建议: | > 使用建议: | ||||||
| > | > | ||||||
| > **不论是本地路径还是URL都建议使用完整的**。虽然可以使用不完整的URL地址,此时Hive将使用hadoop中fs.default.name配置来推断地址,但是为避免不必要的错误,建议使用完整的本地路径或URL地址; | > **不论是本地路径还是URL都建议使用完整的**。虽然可以使用不完整的URL地址,此时Hive将使用hadoop中的fs.default.name配置来推断地址,但是为避免不必要的错误,建议使用完整的本地路径或URL地址; | ||||||
| > | > | ||||||
| > **加载对象是分区表时建议显示指定分区**。在Hive 3.0之后,内部将加载(LOAD)重写为INSERT AS SELECT,此时如果不指定分区,INSERT AS SELECT将假设最后一组列是分区列,如果该列不是表定义的分区,它将抛出错误。为避免错误,还是建议显示指定分区。 | > **加载对象是分区表时建议显示指定分区**。在Hive 3.0之后,内部将加载(LOAD)重写为INSERT AS SELECT,此时如果不指定分区,INSERT AS SELECT将假设最后一组列是分区列,如果该列不是表定义的分区,它将抛出错误。为避免错误,还是建议显示指定分区。 | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user