文档章节

在和hive理执行spark任务

北鼻
 北鼻
发布于 2016/10/21 17:36
字数 281
阅读 21
收藏 0

粗暴点,直接贴代码

public static void main(String[] args) throws Exception{
        if (args.length < 1) {
            System.err.println(" Usage: JavaWordCount <file> <savepath> ");
            System.out.println(" examle: ./bin/spark-submit  --name \"WorktrendJob\"  "+ "--master spark://192.168.0.61:7077 --executor-memory 1G  "
                   + "--class et.theme.vis.job.WorktrendJob  spark-1.jar "+ "/data/china/china.txt file:///data/china ");
            System.exit(1);
        }
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd" );
        DATE_MATH = sdf.format(new Date());
        System.out.println("--------****WorktrendJob*****----------------");
        System.out.println("-----------------------------------------------");
        System.out.println("-----------spark开始计算------------------------");
        //job name
        SparkConf sparkConf = new SparkConf().setAppName("MyCustomerJob");
        //spark连接
        JavaSparkContext ctx = new JavaSparkContext(sparkConf);
        //创建hive连接
        HiveContext hiveContext = new HiveContext(ctx);
        //mysql 配置
        Properties connectionProperties = new Properties();
        connectionProperties.setProperty("user", MYSQL_USER);
        connectionProperties.setProperty("", MYSQL_PASSWORD);
        //查询所有
        DataFrame queryall = queryAll(hiveContext,null);
        //注册临时表
        queryall.registerTempTable("first");
        //查询临时表计算1
        String sql = "";
        //查询 计算2
        String sql1 = "";
        //将计算结果转化DataFrame
        DataFrame sql_a = hiveContext.sql(sql);
        DataFrame sql_b = hiveContext.sql(sql1);
        // 合并2个DataFrame  相当与 left join
        DataFrame join = sql_a.join(sql_b,sql_b.col(DATE_END).equalTo(sql_a.col(DATE_END)),"left_outer");
        //在mysql建表
        sql_a.write().mode(SaveMode.Append).jdbc(MYSQL_JDBC_URL, "test", connectionProperties);
        //关闭
         ctx.stop();
    }

public static DataFrame queryAll(HiveContext hiveContext, String arg){
        String sql = "";
        DataFrame queryAll = hiveContext.sql(sql);
        //查询结果转化成RDD抽象数据集
        JavaRDD<WorktrendInfo> name = queryAll.javaRDD().map(new Function<Row, WorktrendInfo>(){

            @Override
            public WorktrendInfo call(Row v1) throws Exception {
                //将RDD抽象数据集放入vo.class
                CustomerInfo customerInfo = new CustomerInfo();
                customerInfo.setCity(v1.getString(0));
                return null;//将customerInfo返回
            }

        });
        //将结果vo转化成DataFrame ~return
        DataFrame df = hiveContext.createDataFrame(name, WorktrendInfo.class);
        return df;
        
    }

 

© 著作权归作者所有

上一篇: Hadoop搭建
下一篇: DataX
北鼻
粉丝 0
博文 21
码字总数 6780
作品 0
通州
程序员
私信 提问
如何在 Kylin 中优雅地使用 Spark

前言 Kylin 用户在使用 Spark的过程中,经常会遇到任务提交缓慢、构建节点不稳定的问题。为了更方便地向 Spark 提交、管理和监控任务,有些用户会使用 Livy 作为 Spark 的交互接口。在最新的...

ApacheKylin
09/01
58
0
3.sparkSQL整合Hive

  spark SQL经常需要访问Hive metastore,Spark SQL可以通过Hive metastore获取Hive表的元数据。从Spark 1.4.0开始,Spark SQL只需简单的配置,就支持各版本Hive metastore的访问。注意,涉...

intsmaze(刘洋)
2018/08/09
0
0
hive,shark,sparkSQL,hive on spark,impala,drill比较

Hive on Mapreduce Hive的原理大家可以参考这篇大数据时代的技术hive:hive介绍,实际的一些操作可以看这篇笔记:新手的Hive指南,至于还有兴趣看Hive优化方法可以看看我总结的这篇Hive性能优...

hblt-j
2018/08/13
246
0
Hive on Spark 伪分布式环境搭建过程记录

进入hive cli是,会有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) ......

PeakFang-BOK
2018/12/13
83
0
1、spark-submit脚本的使用及理解

一、介绍 1、安装省略,因为现在基本上都用大数据集成平台:cdh,hdp等 2、spark-submit脚本是spark提供的一个用于提交任务的脚本,通过它的--master 参数可以很方便的将任务提交到对应的平台...

刘付kin
2016/11/28
208
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部