更新时间:2022-11-09 GMT+08:00
DLI分区内表导入的文件不包含分区列的数据,导致数据导入完成后查询表数据失败
问题现象
DLI分区内表导入了CSV文件数据,导入的文件数据没有包含对应分区列的字段数据。分区表查询时需要指定分区字段,导致查询不到表数据。
问题根因
DLI分区内表在导入数据时,如果文件数据没有包含分区字段,则系统会默认指定分区值“__HIVE_DEFAULT_PARTITION__”,当前Spark判断分区为空时,则会直接返回null,不返回具体的数据。
解决方案
- 登录DLI管理控制台,在“SQL编辑器”中,单击“设置”。
- 在参数设置中,添加参数“spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled”,值设置为“false”。
图1 参数设置
- 上述步骤参数设置完成后,则可以进行全表查询,不用查询表的时候要包含分区字段。
父主题: 运维指导