运维指导 问题根因 删除表后再重建同名的表,该场景下表权限不会自动继承,需要重新对需要操作该该表的用户或项目进行赋权操作。 解决方案 表删除再创建后,需要重新对需要操作该表的用户或项目进行赋权操作。具体操作如下: 1.在管理控制台左侧,单击“数据管理”>“库表管理”。 2.单击需要设置权限的表所在的数据库名,进入该数据库的“表管理”页面。 3.单击所选表“操作”栏中的“权限管理”,将显示该表对应的权限信息。 4.单击表权限管理页面右上角的“授权”按钮。 5.在弹出的“授权”对话框中选择相应的权限。 6.单击“确定”,完成表权限设置。 DLI分区内表导入的文件不包含分区列的数据,导致数据导入完成后查询表数据失败 问题现象 DLI分区内表导入了CSV文件数据,导入的文件数据没有包含对应分区列的字段数据。分区表查询时需要指定分区字段,导致查询不到表数据。 问题根因 DLI分区内表在导入数据时,如果文件数据没有包含分区字段,则系统会默认指定分区值“ HIVEDEFAULTPARTITION ”,当前Spark判断分区为空时,则会直接返回null,不返回具体的数据。 解决方案 1.登录DLI管理控制台,在“SQL编辑器”中,单击“设置”。 2.在参数设置中,添加参数“spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled”,值设置为“false”。 3.上述步骤参数设置完成后,则可以进行全表查询,不用查询表的时候要包含分区字段。 创建OBS外表,因为OBS文件中的某字段存在回车换行符导致表字段数据错误 问题现象 创建OBS外表,因为指定的OBS文件内容中某字段包含回车换行符导致表字段数据错误。 例如,当前创建的OBS外表语句为: CREATE TABLE test06 (name string, id int, no string) USING csv OPTIONS (path "obs://dlitest001/test.csv"); test.csv文件内容如下: Jordon,88,"aa bb" 因为最后一个字段的aa和bb之间存在回车换行。创建OBS外表后,查询test06表数据内容显示如下: name id classno Jordon 88 aa bb" null null