20.Spark上下文构建以及模拟数据生成

来源:互联网 发布:java native的用法 编辑:程序博客网 时间:2024/06/03 17:58

目录

  • 目录
  • 导入模拟数据生成类
  • 创建Spark作业类

本文为《Spark大型电商项目实战》 系列文章之一,主要介绍Spark上下文构建和模拟数据生成方式。

导入模拟数据生成类

在包com.erik.sparkproject.test下导入电商数据模拟生成程序MockData.java,这个程序下载地址:链接:http://pan.baidu.com/s/1pKN7PEV 密码:vwpc

创建Spark作业类

创建包com.erik.sparkproject.spak,然后创建用户访问session分析Spark作业类UserVisitSessionAnalyzeSpark.java

package com.erik.sparkproject.spark;import org.apache.spark.SparkConf;import org.apache.spark.SparkContext;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.SQLContext;import org.apache.spark.sql.hive.HiveContext;import com.erik.sparkproject.conf.ConfigurationManager;import com.erik.sparkproject.constant.Constants;import com.erik.sparkproject.test.MockData;/** * 用户访问session分析spark作业 * @author Erik * */public class UserVisitSessionAnalyzeSpark {    public static void main(String[] args) {        //构建spark上下文        //首先在Constants.java中设置spark作业相关的常量        //String SPARK_APP_NAME = "UserVisitSessionAnalyzeSpark";        //保存Constants.java配置        SparkConf conf = new SparkConf()                .setAppName(Constants.SPARK_APP_NAME)                .setMaster("local");        JavaSparkContext sc = new JavaSparkContext(conf);        SQLContext sqlContext = getSQLContext(sc.sc());        //生成模拟测试数据        mockData(sc, sqlContext);        //关闭spark上下文        sc.close();    }       /**     * 获取SQLContext     * 如果在本地测试环境的话,那么久生成SQLC哦那text对象     *如果在生产环境运行的话,那么就生成HiveContext对象     * @param sc SparkContext     * @return SQLContext     */    private static SQLContext getSQLContext(SparkContext sc) {        //在my.properties中配置        //spark.local=true(打包之前改为flase)        //在ConfigurationManager.java中添加        //public static Boolean getBoolean(String key) {        //  String value = getProperty(key);        //  try {        //      return Boolean.valueOf(value);        //  } catch (Exception e) {        //      e.printStackTrace();        //  }        //  return false;           //}        //在Contants.java中添加        //String SPARK_LOCAL = "spark.local";        boolean local = ConfigurationManager.getBoolean(Constants.SPARK_LOCAL);        if(local) {            return new SQLContext(sc);        }else {            return new HiveContext(sc);        }       }    /**     * 生成模拟数据     * 只有是本地模式,才会生成模拟数据     * @param sc     * @param sqlContext     */    private static void mockData(JavaSparkContext sc, SQLContext sqlContext) {        boolean local = ConfigurationManager.getBoolean(Constants.SPARK_LOCAL);        if(local) {            MockData.mock(sc, sqlContext);        }    }}

运行后会输入类似于[****-**-**,12,44e36c283e3846ed8f3e3bf01b534158,1,2017-03-06 22:46:46,火锅,null,null,null,null,null,null][0,user0,name0,54,professional94,city66,female]的信息,说明模拟数据已经生成。

《Spark 大型电商项目实战》源码:https://github.com/Erik-ly/SprakProject

本文为《Spark大型电商项目实战》系列文章之一。
更多文章:Spark大型电商项目实战:http://blog.csdn.net/u012318074/article/category/6744423

1 0
原创粉丝点击