开发者社区> 问答> 正文

MapReduce生成odps表记录中文变成字母问题?

例如:
Record result = context.createOutputRecord();
result.setString(0,"英特尔");
................
context.write(result);

输出的表记录”英特尔“变成“=D3=A2=CC=D8=B6=FB”,对应字段是STRING
这个是什么问题?怎么处理?

展开
收起
chorigin 2018-10-11 16:41:17 1691 0
2 条回答
写回答
取消 提交回答
  • 怎么没权限编辑问题了!目前已知问题是string类型的数据使用了"quoted-printable"编码导致的

    /com/aliyun/odps/local/common/utils/LocalRunUtils.class => toReadableString

    public static String toReadableString(byte[] b) throws Exception {

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        OutputStream printableos = MimeUtility.encode(baos, "quoted-printable");
        printableos.write(b);
        printableos.close();
        return new String(baos.toByteArray(), Charset.forName("UTF-8"));
    }

    另外,MR类型任务目前暂时不支持操作新数据类型。varchar类型也不能使用,所以目前我的观点是这个问题暂时不能解决。

    2019-07-17 23:08:32
    赞同 展开评论 打赏
  • 同求

    2019-07-17 23:08:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DataWorks全链路数据质量解决方案-2020飞天大数据平台实战应用第一季 立即下载
DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载