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


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

fd87fe983175d236c61cf6e9691c86ffcc9d19b8

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


准备工作:

下载安装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

2c3ff14808f453768c125d868501beca1c9783fd


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

SouthEast


c47869868fc90ff5dac5c93d30fe23db7d671613


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

c328977375bf37cdd94a30d3f9c4e163236c346f


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

ccf5899fc6f9d8891b8931f112410a6ff893250e

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

7dc662d68d96761b9785db97a2129ee4174fb52d

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

394a72104de278f46f4de07670d85c4faba72657

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;


阿里巴巴大数据-玩家社区 https://yq.aliyun.com/teams/6/

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

bba01b493e1c5d904e882b1c380673c6ebe49a98

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值