一、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 { |