文档首页/ 数据湖探索 DLI/ 常见问题/ SQL作业相关问题/ 运维指导/ DLI分区内表导入的文件不包含分区列的数据,导致数据导入完成后查询表数据失败
更新时间:2022-11-09 GMT+08:00

DLI分区内表导入的文件不包含分区列的数据,导致数据导入完成后查询表数据失败

问题现象

DLI分区内表导入了CSV文件数据,导入的文件数据没有包含对应分区列的字段数据。分区表查询时需要指定分区字段,导致查询不到表数据。

问题根因

DLI分区内表在导入数据时,如果文件数据没有包含分区字段,则系统会默认指定分区值“__HIVE_DEFAULT_PARTITION__”,当前Spark判断分区为空时,则会直接返回null,不返回具体的数据。

解决方案

  1. 登录DLI管理控制台,在“SQL编辑器”中,单击“设置”。
  2. 在参数设置中,添加参数“spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled”,值设置为“false”。
    图1 参数设置
  3. 上述步骤参数设置完成后,则可以进行全表查询,不用查询表的时候要包含分区字段。