开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks中使用python3写了一个数据脱敏的UDF函数,直接调用py脚本测试正常;发布?

DataWorks中使用python3写了一个数据脱敏的UDF函数,直接调用py脚本测试正常;发布成udf以后,对中文脱敏返回乱码。调试发现udf获取到的输入为Unicode的字符串;使用encode("raw_unicode_escape").decode()将字符串解码为原始字符串,报'ascii' code can't decode byte 0xe5 in position 0:?

展开
收起
cuicuicuic 2023-07-17 15:38:31 89 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    如果您在DataWorks中开发了一个使用Python 3编写的数据脱敏UDF函数,并且在调用Python脚本测试时是正常的,但是在发布成UDF后对中文脱敏返回乱码,那么可能是由于字符编码问题引起的。

    在DataWorks中,UDF函数可以接受不同类型的输入参数,包括字符串、数字、日期、数组等等。当输入参数为字符串时,需要注意字符编码的问题,以免出现乱码或者字符集不兼容的情况。

    对于中文字符编码问题,您可以尝试使用Python内置的字符编码转换函数,例如encode和decode函数,将输入字符串从Unicode编码转换为其他编码格式,例如UTF-8等。可以使用以下代码片段将输入字符串从Unicode编码转换为UTF-8编码:

    Copy
    input_str = input_str.encode("raw_unicode_escape").decode("utf-8")
    这段代码将输入字符串先使用"raw_unicode_escape"编码格式进行编码,然后再将编码后的结果使用UTF-8编码格式进行解码,得到最终的字符串结果。

    需要注意的是,字符编码转换可能会对字符串长度和内容产生影响,应该根据具体的业务需求和数据特点,选择合适的编码格式和转换方式。同时,也可以使用DataWorks提供的字符编码设置和转换函数,例如convert函数和charset函数,来处理字符编码问题。

    2023-07-21 08:03:47
    赞同 展开评论 打赏
  • maxcompute函数么 联系mc同学帮忙看看呐 在群公告可以找到,此回答整理自钉群“DataWorks交流群(答疑@机器人)”

    2023-07-17 15:44:46
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载