Kyligence 2024 数智论坛暨春季发布会:以 AI 构建数智竞争力 即刻报名

如何用Apache kylin分析亚马逊产品评价

Kyligence
2017年 6月 06日

摘要

在“用Apache Spark分析8000万亚马逊产品评分评价”中,Max Woolf利用Python,R及Apache Spark分析了亚马逊数据集。

本文将介绍如何利用Apache Kylin和Tableau来轻松生成即席查询报表并查看其响应时间。

软硬件要求

所需软件:

  • Kylin 1.6或以上
  • BI工具,你可以使用任何你喜爱的BI工具,Tableau Desktop将是本文使用的BI工具。
  • 可选项:如果你没办法直接访问Hadoop集群,可以用Docker来装载一个Hadoop系统 (我装载了没有问题)

克隆以下文件包

git clone https://github.com/albertoRamon/Kylin.git

关于亚马逊产品评价数据集

这个数据集提供了两种文件:

评价文件:包含购买完产品后客户给产品的打分,从0到5颗星,并写产品评价。

元数据文件:包含产品的完整描述:产品名称,产品品牌,产品图片,产品分类等。

这些文件中的亚马逊产品通过asin唯一识别码进行关联。

我们使用如下两个文件:

元数据文件是一个gz压缩的json文件,包含940万的产品数据。(大小:3.4GB/10.5GB)

产品评价文件是一个未压缩的CSV文件,包含8260万的评价数据。

将数据下载下来(未压缩)并存在DataDownloaded文件夹,如图所示:

注释1: 下载大文件需要写邮件提交申请。

注释2: 产品评价文件可以用subset部分的一个较小文件替代。

准备数据集

我们需要把这两个原始文件加载到Hive表中,执行这个命令的python脚本如下

python processItem.pypython processMetadata.py

随后你会在DataProcessed文件夹中生成两个新文件,如图所示:

将数据复制到Hive并创建表

如果你在使用Docker

编辑脚本/01-ImportData.sh并指定ID Docker镜像

ContainerID=’58b’

执行以下脚本: 复制数据到Docker容器并创建Hive表

./Scripts/01-ImportData.sh

如果你没有使用Docker:

手动复制DataProcessed文件夹中的数据到你的集群gateway,编辑脚本/02-CreateTB.sql 并指定路径。

set hivevar:PathFiles=/Amazon_Review;

连接你的集群并执行:

hive -f 02-CreateTB.sql

构建Cube

1. 创建新项目

点击并输入一个项目名称

  • 导入数据源

点击和

选择需要导入的表 (按住Ctrl多选)

  • 创建数据模型

点击和

指定一个事实表

指定一个维度表

指定一个维度字段

指定一个计算字段

  • 定义Cube

点击

选择之前定义的Amazon_Review的数据模型

定义其中两个维度为Normal

定义计算字段

在配置文件中覆盖:

开始构建:>

处理8000万行数据,在一台笔记本上用了30分钟:

用BI工具连接Cube

用Tableau连接Cube生成报表

添加企微

kyligence
关注我们

kyligence