用户通过CTAS创建hive表报schema解析异常错误
目前DLI支持hive语法创建TEXTFILE、SEQUENCEFILE、RCFILE、ORC、AVRO、PARQUET、CARBON文件类型的表,如果用户CTAS建表指定的文件格式为AVRO类型,而且直接使用数字作为查询语句(SELECT)的输入,如“CREATE TABLE tb_avro STORED AS AVRO AS SELECT 1”则会报schema解析异常。
此问题的原因是如果不指定列名,则会把SELECT后的内容同时作为列名和插入值,而AVRO格式的表不支持列名为数字,所以会报解析schema异常错误。
用户可以通过“CREATE TABLE tb_avro STORED AS AVRO AS SELECT 1 AS colName”指定列名的方式解决该问题,或者将存储格式指定为除AVRO以外的其它格式。
SQL作业相关问题 所有常见问题
- 查看DLI的执行SQL记录
- 查看DLI SQL日志
- 如何避免字符码不一致导致的乱码
- 创建OBS表时正确指定OBS路径
- OBS表压缩率较高
- 关联OBS桶中嵌套的JSON格式数据如何创建表
- 用户导表到OBS报“path obs://xxx already exists”错误
- DLI如何访问OBS桶中的数据
- 用户通过CTAS创建hive表报schema解析异常错误
- 如何将一个区域中的DLI表数据同步到另一个区域中?
- 如何合并小文件
- 配置AE参数解决数据倾斜
- DLI是否支持创建临时表?
- 对两个表进行join操作时,提示:SQL_ANALYSIS_ERROR: Reference 't.id' is ambiguous, could be: t.id, t.id.;
- count函数如何进行聚合
- 执行查询语句报错:The current account does not have permission to perform this operation,the current account was restricted. Restricted for no budget.
- 在SQL语句中如何设置局部变量
- 执行查询语句报错:There should be at least one partition pruning predicate on partitioned table XX.YYY
- LOAD数据到OBS外表报错:IllegalArgumentException: Buffer size too small. size
- 使用CDM迁移数据到DLI,迁移作业日志上报UQUERY_CONNECTOR_0001:Invoke DLI service api failed错误
- 在DGC上运行DLI SQL脚本,执行结果报org.apache.hadoop.fs.obs.OBSIOException错误
- 删除表后再重新创建同名的表,需要对操作该表的用户和项目重新赋权
- DLI分区内表导入的文件不包含分区列的数据,导致数据导入完成后查询表数据失败
- 创建OBS外表,因为OBS文件中的某字段存在回车换行符导致表字段数据错误
more
