一、sqoop生成
sqoop 将 mysql 等关系型数据库的数据导入到hive数据库中 并 生成parquet文件时,会将date类型
转换成 INT64
。
同时 sqoop 会在 parquet 的fileMetaData
中记录原先的sql类型信息,如下所示:
type | sql type | parquet type | 字段名 |
---|---|---|---|
long | -5 | INT64 | TABLE_ID |
string | 12 | binary | TABLE_NAME |
int | 4 | int32 | TABLE_TYPE |
long | 93 | Int64 | MODIFY_TIME |
bytes | -4 | binary | TABLE_SCHEMA |
1 | { |
二、spark 生成
Spark 将 mysql 等关系型数据库的数据导入到hdfs中 并 生成parquet文件时,会将date类型
转换成 INT96
。
同样 spark也会在 parquet 的fileMetaData中记录相关类型信息,如下所示:
type | 字段名 | parquet type |
---|---|---|
long | TABLE_ID | INT64 |
string | TABLE_NAME | binary |
int | TABLE_TYPE | int32 |
timestamp | LAST_UPDATE_TIME | Int96 |
binary | TABLE_SCHEMA | binary |
1 | { |
三、 总结
3.1 对于 INT96
一定是timestamp类型
3.2 对于INT64
可能是
源码:
1 | typeName match { |