在某次查询中,发现用spark引擎查询表报错,但是用MR引擎查询同一张表却正常,经过分析,发现是表的定义字段类型和实际存储的字段类型不一样,那么,如何查看字段的存储类型呢?
1.: 先通过show create tablename,找到表的存储路径:hdfs://whch/apps/hive/warehouse/ods_lms.db/bl_charge_order_dtl
2.然后通过 su hdfs切换到hdfs用户,查看存储目录下的数据块信息,语句如下
hdfs dfs -ls hdfs://whch/apps/hive/warehouse/ods_lms.db/bl_charge_order_dtl
3.之后复制某一个数据块路径执行语句, -n 100 意思是只输出最后100行。 语句如下:
hdfs dfs -cat hdfs://whch/apps/hive/warehouse/ods_lms.db/bl_charge_order_dtl/23adde06-861f-4ec4-9c75-e46f72860500.parquet | tail -n 100
4.输出的语句中,就包含各个字段的存储格式等信息了