开头:
楼主近期参加了阿里云的平台赛,安全云计算。使用阿里云的odps平台进行数据转换,因为原始数据是json字符串,因此需要自己编写UDF进行json字符串的提取
搜索良久,自己总结了json提取的整个平台操作和编写流程。在此做一些分享,希望能帮助像我一样的新手更快入手云平台上,希望更多人参加云计算比赛,祝阿里云平台发展越来越好。
思路:
1.本地编译udf需要导入官方的maven骨架-------第一章
2. 因为变量都是如
[{\"time\":7149,\"type\":0,\"target\":\"****\"},{\"time\":5718,\"type\":1,\"target\":\"****\"}]
的包含多个对象的json字符串,我们希望返回所有对象的time数据的均值,方差等
因此编写UDF,利用java的GSON包,提取json返回统计数据组成的字符串(因为udf一次只能返回一个String结果,返回格式为"time_avg time_var type_count")-------第二章
3. 数加平台上利用split_part语句,将第二步中得到的空格+统计数据的字符串,转换为一个个的统计变量-----第三章
第一章
安装maven
下载maven
http://mirrors.hust.edu.cn/apache/maven/maven-3/3.3.9/binaries/
配置 maven 环境变量:
Win10:我的电脑---右键属性----系统高级设置---高级---环境变量
系统变量中新建:MAVEN_HOME = D:\Development\apache-maven-3.0.4
系统变量path添加:path = %MAVEN_HOME%\bin
如果发现报错,可能是没有安装java,没有设置JAVA_HOME
系统变量新建JAVA_HOME 值为C:\Program Files\Java\jdk1.6.0_23
打开 cmd,在里面敲:mvn –version
显示如下即正确
Apache Maven 3.3.9(bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: G:\apache-maven-3.3.9\bin\..
Java version: 1.8.0_102, vendor: OracleCorporation
Java home: C:\ProgramFiles\Java\jdk1.8.0_102\jre
Default locale: zh_CN, platform encoding:GBK
OS name: "windows 10", version:"10.0", arch: "amd64", family: "dos"
配置eclipse 的maven环境
参考http://jingyan.baidu.com/article/60ccbceb01de4d64cbb19756.html
1) 添加远程repository
Eclipse中依次点击window-> Preferences -> Maven -> Arthetypes ,在打开的对话框中点击 Add Remote Catalog按钮: