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

在大数据计算MaxCompute写udf函数,没起作用,单独执行脚本是成功的,怎么解决?

在大数据计算MaxCompute写udf函数,没起作用,单独执行脚本是成功的,怎么解决?

-- coding: utf-8 --

from odps.udf import annotate

@annotate('string->string')
class convert_latin_to_english(object):
def init(self):
self.mapping = {
'à': 'a', 'á': 'a',
'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', 'è': 'e',
'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', 'ï': 'i',
'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o',
'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', 'ý': 'y', 'þ': 'th',
'ß': 'ss', 'ā': 'a', 'ă': 'a', 'ą': 'a', 'ć': 'c', 'ĉ': 'c', 'ċ': 'c',
'č': 'c', 'ď': 'd', 'đ': 'd', 'ē': 'e', 'ĕ': 'e', 'ė': 'e', 'ę': 'e',
'ě': 'e', 'ĝ': 'g', 'ğ': 'g', 'ġ': 'g', 'ģ': 'g', 'ĥ': 'h', 'ħ': 'h',
'ĩ': 'i', 'ī': 'i', 'ĭ': 'i', 'į': 'i', 'ı': 'i', 'ij': 'ij', 'ĵ': 'j',
'ķ': 'k', 'ĸ': 'k', 'ĺ': 'l', 'ļ': 'l', 'ľ': 'l', 'ŀ': 'l', 'ł': 'l',
'ń': 'n', 'ņ': 'n', 'ň': 'n', 'ʼn': 'n', 'ŋ': 'n', 'ō': 'o', 'ŏ': 'o',
'ő': 'o', 'œ': 'oe', 'ŕ': 'r', 'ŗ': 'r', 'ř': 'r', 'ś': 's', 'ŝ': 's',
'ş': 's', 'š': 's', 'ţ': 't', 'ť': 't', 'ŧ': 't', 'ũ': 'u', 'ū': 'u',
'ŭ': 'u', 'ů': 'u', 'ű': 'u', 'ų': 'u', 'ŵ': 'w', 'ŷ': 'y', 'ź': 'z',
'ż': 'z', 'ž': 'z', 'ſ': 's', 'ƀ': 'b', 'ƃ': 'b', 'ƅ': 'b', 'ƈ': 'c',
'ƌ': 'd', 'ƍ': 'd', 'ƒ': 'f', 'ƕ': 'hv', 'ƙ': 'k', 'ƚ': 'l', 'ƛ': 'l',
'ƞ': 'n', 'ơ': 'o', 'ƣ': 'oi', 'ƥ': 'p', 'ƨ': 's', 'ƪ': 's', 'ƫ': 't',
'ƭ': 't', 'ư': 'u', 'ƴ': 'y', 'ƶ': 'z', 'ƹ': 'z', 'ƺ': 'z', 'ƽ': 'z',
'ƾ': 'z', 'ƿ': 'w', 'dž': 'dz', 'lj': 'lj', 'nj': 'nj', 'ǎ': 'a', 'ǐ': 'i',
'ǒ': 'o', 'ǔ': 'u', 'ǖ': 'u', 'ǘ': 'u', 'ǚ': 'u', 'ǜ': 'u', 'ǝ': 'e',
'ǟ': 'a', 'ǡ': 'a', 'ǣ': 'ae', 'ǥ': 'g', 'ǧ': 'g', 'ǩ': 'k', 'ǫ': 'o',
'ǭ': 'o', 'ǯ': 'z', 'dz': 'dz', 'ǵ': 'g', 'ǹ': 'n', 'ǻ': 'a', 'ǽ': 'ae',
'ǿ': 'o', 'ȁ': 'a', 'ȃ': 'a', 'ȅ': 'e', 'ȇ': 'e', 'ȉ': 'i', 'ȋ': 'i',
'ȍ': 'o', 'ȏ': 'o', 'ȑ': 'r', 'ȓ': 'r', 'ȕ': 'u', 'ȗ': 'u', 'ș': 's',
'ț': 't', 'ȝ': 'g', 'ȟ': 'h', 'ȣ': 'ou', 'ȥ': 'z', 'ȧ': 'a', 'ȩ': 'e',
'ȫ': 'o', 'ȭ': 'o', 'ȯ': 'o', 'ȱ': 'o', 'ȳ': 'y', 'ȼ': 'c', 'ȿ': 's',
'ɀ': 'z', 'ɂ': 'z', 'ɇ': 'e', 'ɉ': 'j', 'ɋ': 'q', 'ɍ': 'r', 'ɏ': 'y'

         # 添加更多的映射关系
    }

def evaluate(self, s):

    # 如果输入的字符串为空,直接返回空字符串
    if not s or s =='' or not isinstance(s, str):
        return None 

    result = ''
    for char in s.lower():
        if char in self.mapping:
            result += self.mapping[char]
        else:
            result += char
    return result

执行结果
0986b2e758f9ce2a609f0008fc36c3fa.png

展开
收起
三分钟热度的鱼 2024-06-05 19:51:01 40 0
1 条回答
写回答
取消 提交回答

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

相关产品

  • 云原生大数据计算服务 MaxCompute
  • 相关电子书

    更多
    Data+AI时代大数据平台应该如何建设 立即下载
    大数据AI一体化的解读 立即下载
    极氪大数据 Serverless 应用实践 立即下载