开发者社区 > 大数据与机器学习 > 大数据计算 MaxCompute > 正文

大数据计算MaxCompute从这个推断应该是转义符失效了,或者没法识别?

大数据计算MaxCompute我在dataworks上面创建了一个 oss 外表,外表配置参考图;oss 数据是日志服务投递过来的,通过【双引号】进行转义;昨天跑数是正常的,今天跑数据的时候报错了,逻辑没有变过。在尝试解决过程中发现了日志记录的逗号个数是61个,和切分的字段数62一致,从这个推断应该是转义符失效了,或者没法识别。虽然oss外表配置加了【'odps.text.option.use.quote'='true'】但是没有识别出来,而且加了【'odps.sql.text.schema.mismatch.mode'='ignore'】似乎也不起作用。截取部分关键报错:FAILED: ODPS-0123131:User defined function exception - Traceback:java.lang.RuntimeException: SCHEMA MISMATCH: External Table schema specified a total of [21] columns, but current text line parsed into [62] columns delimited by [,]. …… add odps.sql.text.schema.mismatch.mode = (ignore,truncate,error) in serdeproperty to handle schema mismatch. at com.aliyun.odps.udf.impl.builtin.storagehandler.BuiltinTextExtractor.extract(BuiltinTextExtractor.java:225) at com.aliyun.odps.udf.ExtractorHandler.next(ExtractorHandler.java:149)f89d4f7d1fdd8a4af6a36d8e8d4992db.png

展开
收起
cuicuicuic 2023-11-12 07:59:21 71 0
3 条回答
写回答
取消 提交回答
  • oss外部表 odps.sql.text.schema.mismatch.mode' = 'truncate'
    这个参数不支持和
    odps.text.option.use.quote'='true'
    混用
    是开发表发布到生产环境之后DDL变了,配置的参数都没了。这俩参数目前看来是没有冲突的。4f2c96fb0080101c27f25fdeda7b15bf.png
    ,此回答整理自钉群“MaxCompute开发者社区2群”

    2023-11-12 15:37:10
    赞同 展开评论 打赏
  • 这个问题是关于MaxCompute中OSS外表配置的问题。根据你提供的信息,错误提示显示"SCHEMA MISMATCH: External Table schema specified a total of [21] columns, but current text line parsed into [62] columns delimited by [,]",这表明在OSS外表中定义的表结构有21列,但是实际解析的文本行却分成了62个字段,这可能是因为转义符处理出现问题。

    针对这个问题,我建议按照以下步骤进行排查和解决:

    1. 确认数据源:首先,请确认日志服务投递的数据格式是否与OSS外表配置的表结构一致。如果数据格式不一致,需要调整数据格式以匹配表结构。
    2. 检查转义符设置:在OSS外表配置中,已经添加了'odps.text.option.use.quote'='true'来启用双引号转义,但是可能存在其他配置项或环境因素导致转义符失效。需要检查以下几点:
    * 确认OSS外表配置中的其他设置是否与转义符相关,并确保它们的设置是正确的。
    * 确认日志服务投递的数据中是否正确使用了双引号作为转义符。
    
    1. 尝试更改模式:在OSS外表配置中,已经添加了'odps.sql.text.schema.mismatch.mode'='ignore'来忽略模式不匹配的错误,但是似乎没有起作用。可以尝试更改模式为'truncate'或'error',以观察是否有不同的效果。
    2. 检查逗号个数:根据你提到的日志记录的逗号个数为61个,而字段数为62个,这确实存在不一致的情况。需要检查数据源和OSS外表配置中的分隔符设置是否正确。
    3. 更新依赖库:如果以上步骤都没有解决问题,可能是由于MaxCompute的某个依赖库版本存在问题。建议检查MaxCompute的相关依赖库版本,并尝试更新到最新版本或修复问题的版本。
    2023-11-12 09:20:21
    赞同 展开评论 打赏
  • ODPS-0123131:User defined function exception
    模块:PROCESSOR。
    严重等级:1。
    触发条件:自定义函数异常。
    处理方法:修改自定义函数。

    https://help.aliyun.com/zh/maxcompute/user-guide/sql-errors?spm=a2c4g.11186623.0.i19

    2023-11-12 08:43:07
    赞同 展开评论 打赏

MaxCompute(原ODPS)是一项面向分析的大数据计算服务,它以Serverless架构提供快速、全托管的在线数据仓库服务,消除传统数据平台在资源扩展性和弹性方面的限制,最小化用户运维投入,使您经济并高效的分析处理海量数据。

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 热门讨论

    热门文章

    相关电子书

    更多
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载
    大数据&AI实战派 第2期 立即下载