MaxCompute SQL引用第三方Base64JAR实现编解码

BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输。更具体地说,BASE64算法主要用于转换二进制数据为ASCII字符串格式。

下面我们通过阿里云MaxCompute 和大数据开发套件,引用第三方的Base64 JAR,来实现字符串的编码、解码;

效果如下:

---base64编码
select id,encode_base64('liuxiaowen1234') from alian.user_info limit 1;

bGl1eGlhb3dlbjEyMzQ=

---base64解码
select id,decode_base64('bGl1eGlhb3dlbjEyMzQ=') from alian.user_info limit 1;

liuxiaowen1234

实验环境阿里云大数据开发套件

接下来,我们看一下实现方法。

准备工作:

下载安装Eclipse;

开通阿里云MaxCompute ,参考:https://help.aliyun.com/document_detail/27815.html

大数据开发套件,参考:https://help.aliyun.com/document_detail/30263.html

注册Accesskey,参考:https://help.aliyun.com/document_detail/27803.html;

开始实验:

1、首先在Eclipse创建你的项目,下载并配置好MaxCompute UDF插件环境,参考:https://help.aliyun.com/document_detail/27984.html

2、把附件的base64.jar加载到lib中,地址:https://yq.aliyun.com/attachment/download/?spm=0.0.0.0.AR40XR&filename=base64.z...[%E9%9A%90%E6%9E%97].1501763402.zip

3、创建两个MaxCompute UDF,分别是EncodeBase64()编码、DecodeBase64()解码;

代码如下:

package com.yinlin.udf;

import com.aliyun.odps.io.Text;
import com.aliyun.odps.udf.UDF;
import com.snda.base64.*;//这里是引用的第三方base64.jar

public class EncodeBase64 extends UDF{
	Text result = new Text();
    public EncodeBase64() {
    }

    public String evaluate(String str){
    	if (str == null || str.equals("")) {
    		return null;
    	}
    	try {
    		byte[] b = str.getBytes();
    		result.set(Base64.encodeBase64(b));
    	} catch (Exception e) {
    		e.printStackTrace();
    		return null;
    	}

    	return result.toString();
    }
}
package com.yinlin.udf;
import com.aliyun.odps.io.Text;
import com.aliyun.odps.udf.UDF;
import com.snda.base64.*;

public class DecodeBase64 extends UDF{
	Text result = new Text();
    public DecodeBase64() {
    }

    public String evaluate(String str){
    	if (str == null || str.equals("")) {
    		return null;
    	}
    	try {
    		byte[] b = str.getBytes();
    		result.set(Base64.decodeBase64(b));
    	} catch (Exception e) {
    		e.printStackTrace();
    		return null;
    	}
    	return result.toString();
    }
}

4、导出新的JAR,命名为MaxCompute_Base64.jar;下载地址:https://yq.aliyun.com/attachment/download/?spm=0.0.0.0.AR40XR&filename=MaxCompu...[%E9%9A%90%E6%9E%97].1501763771.zip

5、打开已开通注册的大数据开发套件,进入yinlin Project(你注册的项目名称);

6、上传两个JAR,MaxCompute_Base64.jar,base64.jar;

7、分别注册encode64、decode64函数,注意:同时引用刚才导入的两个JAR,否则会因找不到第三方JAR编码失败。

8、输入MaxCompute SQL,完成Base64编解码实验。

---base64编码
select id,encode_base64('liuxiaowen1234') from alian.user_info limit 1;

---base64解码
select id,decode_base64('bGl1eGlhb3dlbjEyMzQ=') from alian.user_info limit 1;

阿里巴巴大数据-玩家社区 /

---阿里大数据博文,问答,社群,实践,有朋自远方来,不亦说乎……

时间: 2024-09-11 10:18:31

MaxCompute SQL引用第三方Base64JAR实现编解码的相关文章

MaxCompute SQL 现状与展望

票选最美云上大数据暨大数据技术峰会上,阿里云飞天一部高级专家振禹为大家带来题为"MaxCompute SQL 现状与展望"的演讲.本文重点解析了MaxCompute SQL 现状,详细介绍了各种功能,其中包括编译器用户友好功能.复杂类型.CTE.参数化视图和SEMI JION等,接着说明了MaxCompute SQL即将完成与推进中的功能,最后作了简要总结.   以下是精彩内容整理: MaxCompute SQL 现状 目前MaxCompute SQL能力不是很强,虽然在性能.安全和成

我的Android进阶之旅------>Android中编解码学习笔记

编解码学习笔记(一):基本概念 媒体业务是网络的主要业务之间.尤其移动互联网业务的兴起,在运营商和应用开发商中,媒体业务份量极重,其中媒体的编解码服务涉及需求分析.应用开发.释放license收费等等.最近因为项目的关系,需要理清媒体的codec,比较搞的是,在豆丁网上看运营商的规范 标准,同一运营商同样的业务在不同文档中不同的要求,而且有些要求就我看来应当是历史的延续,也就是现在已经很少采用了.所以豆丁上看不出所以然,从 wiki上查.中文的wiki信息量有限,很短,而wiki的英文内容内多,

视音频编解码基本术语及解释

         整理了一些基本视音频术语,用于入门和查询使用. H264: H264是视频的标准,是MPEG4-10,基于内容的高效编码方式. H.264/MPEG-4第10部分,或称AVC(AdvancedVideo Coding,高级视频编码),是一种视频压缩标准,一种被广泛使用的高精度视频的录制.压缩和发布格式.第一版标准的最终草案于2003年5月完成. H.264/MPEG-4 AVC是一种面向块的基于运动补偿的编解码器标准.由ITU-T视频编码专家组与ISO/IEC联合工作组--即动

MaxCompute基础与MaxCompute SQL优化

总论: 大数据计算服务 ( MaxCompute,原名 ODPS )是一种快速.完全托管的 TB/PB 级数据仓库解决方案 .MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全 .同时,大数据开发套件和 MaxCompute关系紧密,大数据开发套件为 MaxCompute 提供了一站式的数据同步,任务开发,数据工作流开发,数据管理和数据运维等功能,您可以参见 大数据开发套件简介 来对其进行深入了

【H.264/AVC视频编解码技术详解】 九、序列参数集Sequence Paramater Set(SPS)解析

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 在H.264标准协议中规定了多种不同的NAL U

1.Cocos2dx 3.2中vector,ValueMap,Touch触摸时间的使用.iconv字符编解码

 Cocos2dx3.2以后使用Vector<T>代替了CCArray.案例如下: 头文件:T02Vector.h #ifndef __T02Vector_H__ #define __T02Vector_H__   #include "T32.h"   class T02Vector : public Layer { public:     CREATE_FUNC(T02Vector);       //Cocos2dx3.2以后使用Vector代替了CCArray  

【H.264/AVC视频编解码技术详解】 十、图像参数集Picture Paramater Set(PPS)解析

<H.264/AVC视频编解码技术详解>视频教程已经在"CSDN学院"上线,视频中详述了H.264的背景.标准协议和实现,并通过一个实战工程的形式对H.264的标准进行解析和实现,欢迎观看! "纸上得来终觉浅,绝知此事要躬行",只有自己按照标准文档以代码的形式操作一遍,才能对视频压缩编码标准的思想和方法有足够深刻的理解和体会! 链接地址:H.264/AVC视频编解码技术详解 GitHub代码地址:点击这里 除了序列参数集SPS之外,H.264中另一重要的

音频数据编解码——在.NET中使用Speex(附下载)

Speex是一套开源的音频编解码库,最新版本还包含了回音消除和防抖动等功能,如果我们想开发语音聊天或视频会议这样的系统,Speex将是一个不错的选择.到 http://www.speex.org可以下载Speex的源码(编译后的dll为libspeex.dll),最新版本为1.2.不过源码是用C++开发的,直接在.NET中使用会有诸多不便,为此,我用C#将其封装,使得编解码的调用相当简单. 由于Speex原始导出的API不是很方便C#调用,所以,在用C#封装之前,先要用C++对Speex的原始A

信号-安卓开发 如何将float数组 进行音频编解码 转换成wav音频格式 储存到sd卡内部

问题描述 安卓开发 如何将float数组 进行音频编解码 转换成wav音频格式 储存到sd卡内部 最近正在学习安卓音频相关的一些知识,再SD卡里面读取一个wav音频文件,然后对这个文件进行噪音消除,最后输出的数据都是float格式的,这些数据用matlab中的wavwrite函数转换成wav是没有问题的,但是在安卓上如何将这些数据转换成wav还需要大神们请教,应该需要编解码的过程,如果有做这方面的大神 请知道指导...谢谢了 这段代码是将IFFT处理后的文件储存到res里面,因为是分帧进行的信号