Apache CarbonData是一种新的大数据文件格式,使用先进柱状存储,索引,压缩和编码技术实现更快速的交互式查询,以提高计算效率,将有助于加速查询超过PetaBytes数量级数据的速度。查询性能对比详细见carbondata 测试报告,安装文档详细见carbondata 安装文档
本文将介绍如何使用carbondata,以及如何编写一个carbondata 的saprk程序
一、在spark shell 下使用carbondata
1、使用外部包加载的方式启动carbondata 的spark shell:
spark-shell –jars /data1/bd/carbondata/carbondata_2.10-1.1.0-shade-hadoop2.2.0.jar
2、启动后,引入carbondata的context
import org.apache.spark.sql.CarbonContext //引入CarbonContext包
val cc = new CarbonContext(sc, "hdfs://base/user/hive/warehouse/dw_behavior_pageview_carbondatats2") //创建一个CarbonContext,里面的路径是carbondata 的存储路径
cc.sql("""show create table dw_open_biz_order_part_carbondata """) //执行sql语句
// 执行查询语句
cc.sql("""select cinemano, count(distinct orderid) from dw_open_biz_order_part_carbondata group by cinemano""")
//执行updata更新数据
cc.sql("""UPDATE dw_open_biz_order_part_carbondata SET (openid) = ('o0aT-d5MmmrqSPmM5ewiHkrcnDpY') where dt='2017-07-02' and openid='test_o0aT-d5MmmrqSPmM5ewiHkrcnDpY'""").show()
cc.sql(""" select dt,openid from dw_open_biz_order_part_carbondata where dt='2017-07-02' and openid='test_o0aT-d5MmmrqSPmM5ewiHkrcnDpY' """).show()
二、 使用spark-submit 方式执行carbondata任务。
carbondata执行sql的api我已经封装了一个jar包,jar路径/data1/bimining/shenxiang/CarbonDataSql.jar
执行命令:
spark-submit --executor