基于spark,scala的互联网广告预测和分析

在这里插入图片描述

1.步骤一:数据预处理
本节介绍步骤一的各项操作,包括下载数据集、使用IDEA创建基于SBT的scala项目、编写代码调用Spark进行数据预处理。在本实践步骤完成之前请先完成第零个步骤实验环境准备。这里假设你已经完成了第零个步骤。
1.1 数据集介绍
本实验使用数据集取自阿里云天池大数据竞赛上提供的数据集。下载地址(https://tianchi.aliyun.com/datalab/dataSet.html?spm=5176.100073.0.0.1e2035eeWRiVsd&dataId=56)。该数据集提供了四张表,这里只使用了raw_sample、ad_feature、user_profile这三张表。请下载这有关这三张表的压缩文件。
关于这三张表的信息,官网上已经给出了详细的描述,这里就不再给出详细的描述。
关于这三张表简单的结构关系如图所示。

图中橘色字段为本实验主要用到的字段,蓝色,紫色部分为对应的表之间连接字段.
为了在后面实验中对用户点击行为进行预测,本实验对原始数据进行处理,构建训练集合和测试集合(主要是根据时间进行划分:2017年5月6日 - 12日这7天的数据做训练样本,5月13日这一天数据做测试样本)。
提取的特征如表1-1所示

通过wget命令将数据下载至/home/user/Case1目录下,并通过一下命令对数据进行查看进行查看。
拷贝代码#创建目录
mkdir /home/user/Case1/
#切换到数据存放目录
cd /home/user/Case1/
#下载数据
wget wget http://file.ictedu.com/start/bittest/data/Case1.tar.gz
#解压数据
tar -vxf Case1.tar.gz
#查看数据前五条
head -5 raw_sample.csv
可以看到前5行记录:

执行如下命令查看user_profile表数据。
拷贝代码head -5 user_profile.csv
可以看到前5行记录。

1.2 使用IDEA创建构建基于SBT的Scala项目
IDEA创建基于SBT的Scala项目,项目命名建议命名aliadclickpredict。
Scala在/home/user/bigdata/下
.步骤三:Hive数据分析并将分析结果导入到MySQL
本节将对原始数据集进行分析,用到了所有的数据,包括三张表,所以请一定务必下载好,并解压出csv文件。本节接下来的处理过程大体是:把原始数据集上传到Hive数据仓库、使用HiveQL对数据集分析、使用Sqoop迁移Hive中的数据到MySQL。在本实践步骤开始之前请先完成本教程的前三个实验步骤。这里假设你已经完成了前三个实验步骤。
3.1将原始数据集上传到Hive
a. 启动Hive。
首先,启动Hadoop,执行如下命令:
cd /usr/local/hadoop
./sbin/start-dfs.sh
然后,执行jps命令看一下当前运行的进程:
Jps
如果出现下面这些进程,说明Hadoop启动成功了。
3765 NodeManager
3639 ResourceManager
3800 Jps
3261 DataNode
3134 NameNode
3471 SecondaryNameNode
Hive的元数据信息依赖于MySQL的存储,执行如下命令启动MySQL:
拷贝代码service mysql start
进入hive客户端
进入Hive的安装目录,执行如下命令启动Hive-Shell
拷贝代码cd /home/user/bigdata/apache-hive-2.3.4-bin/
./bin/hive
创建数据库和表
创建数据库 aliclick
拷贝代码create database aliclick;
use aliclick;
在数据库aliclick中分别创建表rawsample,userprofile,adfeature对应原始数据集中的raw_sample.csv、user_profile.csv、ad_feature.csv。
新建三张内表,执行命令如下。
拷贝代码create table if not exists aliclick.rawsample(userid int, time_stamp int, adgroup_id int, pid string, noclk int, clk int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
scala是一种现代化的编程语言,被广泛应用于大数据分析领域。它是一种静态类型的语言,具有高度的可扩展性和灵活性,有助于开发高效且易于维护的代码。Scala与Java有着密切的关系,因此可以很方便地与现有的Java代码进行交互。 而Spark是一个用于大规模数据处理的分布式计算框架。它提供了一套丰富的API和工具,使得大数据分析过程可以更加高效地进行。Spark支持各种常见的大数据处理任务,包括数据清洗、转换、模型训练和预测等。在Spark中,我们可以使用Scala编写分析代码,利用其强大的函数式编程特性和并行计算能力,来处理大规模的数据集。 将ScalaSpark结合起来,可以获得一个强大而灵活的大数据分析平台。Scala的简洁语法和函数式编程特性可以减少代码的编写量,并提供高度抽象的表达能力。而Spark的分布式计算框架可以以高性能处理海量的数据,并提供各种优化策略,以确保数据分析的效率和准确性。 因此,ScalaSpark的组合是大数据分析领域的一种理想选择。它们的结合可以提供高效、可扩展和易维护的大数据分析解决方案,帮助我们更好地处理和分析海量的数据,并从中获取有价值的信息和洞察力。无论是在商业还是学术领域,ScalaSpark都在大数据分析领域发挥着重要的作用,并为我们带来了更快、更有效的数据分析方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值