MaxCompute公开数据集简介

目前阿里云MaxCompute已经免费向全部用户开放了多种公用数据集,包括:

  • 股票价格数据
  • 房产信息
  • 影视及其票房数据
  • TPC-DS数据集

这些公开数据现已免费开放给用户,并已经完成了数据分析前序较复杂的数据获取、上传、清洗等过程,可以直接进入数据分析阶段。因此可以直接使用这些数据集来进行一定的MaxCompute的学习以及数据的分析过程。具体的MaxCompute公开数据集介绍见:阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能。

公开数据集开发环境

为了使用上述的公开数据集,需要进行如下的步骤:

1. 获取权限

所有的数据均被存储在MaxCompute 产品中的public_data 项目空间中。首先,需要以项目空间的owner 或者管理员的身份,在自己的项目空间下,执行如下操作。执行完成后用户项目空间下的所有成员均可读取各公开数据集合。

add user ALIYUN$everyone;

2. 使用public_data项目空间下的表

用户需要跨项目空间访问数据,在数据工场中编辑SQL 时,必须在表明前指定项目名称,例如:

select * from public_data.ods_enterprise_share_basic where ds = '20170114';

3. MaxCompute Studio开发环境

下面对public_data中公开数据集的操作主要使用MaxCompute Studio开发环境,具体的开发环境搭建见前序文章:MaxCompute基础开发环境搭建 。

影视及票房数据集简介

该公开数据集是所有公开数据集中结构和内容较简单的一个,其中包括的数据信息为:每日更新国内影视剧信息及票房数据信息 (后续会发现其实该数据集中的内容没有持续更新)。具体介绍如下:

项目 public_data
表集合

dwd_product_movie_basic_info 电影基本信息

ods_product_movie_box 票房基本信息

更新周期 每日早10 点前更新。至2016 年12 月13 日开始更新,全量更新(这里是官方的介绍,但实际内容好像有所出入,后面后进行查看)
 查询示例  select * from public_data.dwd_product_movie_basic_info where ds ='20170112' limit 10;

dwd_ product_ movie_ basic_ info表结构

字段英文名

字段类型

描述

是否是分区列

movie_ name

STRING

电影名称

dirctor

STRING

导演

scriptwriter

STRING

编剧

area

STRING

制片地区/国家

actors

STRING

主演

type

STRING

类型

movie_ length

STRING

电影长度

movie_ date

STRING

上映日期

movie_ language

STRING

语言

imdb_ url

STRING

imdb号

ds

STRING

日期

分区列

ods_product_movie_box表结构

字段英文名

字段类型

描述

是否是分区列

rank

STRING

排名

avgprice

STRING

平均票价

avppeople

STRING

场均人次

boxoffice

STRING

单日票房(万)

boxoffice_ up

STRING

环比变化 (%)

irank

STRING

排名

movieday

STRING

上映天数

moviename

STRING

影片名

sumboxoffice

STRING

累计票房(万)

womindex

STRING

口碑指数

ds

STRING

日期

分区列

影视及票房数据集SQL实战

了解完该数据集的大致内容,下面使用MaxCompute SQL来初步探索一下这个数据集的内容。

查询dwd_product_movie_basic_info表

查看电影基本信息表的记录起止时间

由于dwd_product_movie_basic_info使用ds(日期列)来作为分区信息,因此查看该表的分区信息就可以获得整个数据集数据记录的起止时间,命令如下;

show partitions public_data.dwd_product_movie_basic_info;

返回结果如下:

ds=20161227
ds=20170112
ds=20170113
ds=20170114
ds=20170115
ds=20170116
...
ds=20170629
ds=20170630
ds=20170701
ds=20170702
ds=20170703
ds=20170704
ds=20170705

因此可以看到该数据集的开始记录的时间为20161227,然后再从20170112开始进行每天连续增量更新直到20170705。此后则没有继续进行数据的更新。

所以对该表进行查询过程中,查询的日期范围应该在这个时间返回内,否则无数据返回。引入使用如下命令查询今天的电影信息则是没有数据的:

-- 无该分区数据
select * from public_data.dwd_product_movie_basic_info where ds ='20190201' limit 10;

查询每日上映电影数量

dwd_product_movie_basic_info表中使用ds作为分区,下面统计每个分区(每天)记录的电影数量:

-- 统计每天电影记录的总数量
select ds, count(*) as ds_count from public_data.dwd_product_movie_basic_info group by ds;

返回结果如下:

ds   ds_count
+---+---------+
20170112    359927
20170113    360347
20170114    360693
20170115    360905
20170116    360905
20170117    361159
20170118    361545
20170119    361727
...
20170629    379581
20170630    379581
20170701    379581
20170702    379581
20170703    379581
20170704    379581
20170705    379581

这里可以看到每天的电影记录数量有30多万条,想想一天内会有那么多电影上映吗?对这个数量有些疑惑,可以使用如下命令来验证对所有时间的记录数进一步统计,并与数据表的所有记录数量进行对比,来验证这里的统计结果。

首先来对上述的结果进行进一步的统计:

-- 每天电影记录数量的真实性,对所有的求和汇总
select sum(tmp.count) as total_num from (select ds, count(*) as count from public_data.dwd_product_movie_basic_info group by ds
) tmp;

然后在查询该表中所有记录的数量:

-- 统计该表中的数据总数
select count(*) from public_data.dwd_product_movie_basic_info;

两者返回的结果均为:

65430458

因此,可以看出来上述的按日期对电影数量的统计结果并没有问题,但每天有30多万的电影上映还是不太相信啊,毕竟对公开数据集的介绍里说的这是国内的数据量。带着这个疑问,我们来查看某一个日期的电影信息:

-- 查询20170304分区中的10条数据
select * from public_data.dwd_product_movie_basic_info where ds ='20170304' limit 10;

返回结果如下:

可以看到这里ds并不是电影上映的时间,而是数据进行分区记录的时间,因此根据ds查询的话,很多记录的电影数据实际上是已经上映过的,因此这里的数据那么庞大就可以理解了。

根据电影上映日期进行查询

通过上面的查询可以看到ds分区列不是电影上映的时间,而是数据记录的时间。因此可以根据电影上映时间对数据进行一些查询。例如如下几个查询:

1. 查询1990年到2020年,上映日期最近的20个的英文记录片电影:

-- 查询1990年到2020年,上映日期最近的20个的英文记录片电影
select distinct *
from public_data.dwd_product_movie_basic_info
where movie_language='英文'
and type='纪录片'
and movie_date between '1990-01-01' and '2020-01-01'
order by movie_date desc
limit 20;

这里是一般的查询方式,得到的结果如下;

可以看到这里其实只是一条数据, 而distinct去重语句没有生效的原因是,distinct根据所有列进行去重,而这里数据的ds不同,因此去重不掉。而这里在不同ds存在相同电影信息的原因是:一个电影具有一定的上映时间范围,例如电影A从201901月上映到201906月下映,因此这段时间返回内,不同时间(ds)均有这个电影的记录。

为了去重这里的数据,这里可以将ds列从distinct中去除后进行重新查询:

-- 查询1990年到2020年,上映日期最近的20个的英文记录片电影(去重需要过滤掉ds)
select distinct movie_name, dirctor, scriptwriter, area, actors, type, movie_length, movie_date, movie_language, imdb_url
from public_data.dwd_product_movie_basic_info
where movie_language='英文'
and type='纪录片'
and movie_date between '1990-01-01' and '2020-01-01'
order by movie_date desc
limit 20;

得到的结果发现只有一条数据:

看来这个数据集中的记录其实还是有一定问题的。

2. 查询1990年到2020年,上映日期最近的20个中文电影,并且除imdb_url可为空之外,其他字段都不能为空:

-- 查询1990年到2020年,上映日期最近的20个中文电影,并且除imdb_url可为空之外,其他字段都不能为空
select distinct movie_name, dirctor, scriptwriter, area, actors, type, movie_length, movie_date, movie_language
from public_data.dwd_product_movie_basic_info
where movie_language='中文'
and scriptwriter is not null and actors is not null and type is not null and movie_length is not null
and movie_date between '1990-01-01' and '2020-01-01'
order by movie_date desc
limit 20;

返回结果如下,看来满足条件的数据只有19个:

查询ods_product_movie_box表

查看票房记录表中数据的起止日期

show partitions public_data.ods_product_movie_box;

返回结果如下:

ds=20170113
ds=20170114
ds=20170115
ds=20170116
ds=20170117
ds=20170118
ds=20170119
ds=20170120
ds=20170121
...
ds=20170801
ds=20170802
ds=20170803
ds=20170805
ds=20170806
ds=20170807
ds=20170808
ds=20170809
ds=20170810
ds=20170812

可以看到ods_product_movie_box表中的记录开始于20170113,终止于20170812。记录除最后一天外,均是每日连续记录。但该表的记录和dwd_product_movie_basic_info表中的记录,在日期方面并不是在一个时间范围内。

统计每天具有票房的电影记录数

--查看每天有多少记录了票房的电影
select ds, count(*) as ds_count from public_data.ods_product_movie_box group by ds;

返回结果如下:

ds   ds_count
+---+----+
20170113    10
20170114    10
20170115    10
20170116    10
20170117    10
20170118    10
20170119    10
...
20170803    10
20170805    10
20170806    10
20170807    10
20170808    10
20170809    10
20170810    10
20170812    10

可以看到每天电影票房的记录只记录排名前10的电影。可以查看某一天的电影票房数据如下:

select * from public_data.ods_product_movie_box where ds='20170115';

返回结果如下:

统计电影票房

1. 统计每日电影累计总票房

--查看每天(每分区)上映电影的总票房
select ds, sum(sumboxoffice) as totol_box from public_data.ods_product_movie_box group by ds;

返回结果如下:

ds   totol_box
+---+----------+
20170113    254059.0
20170114    262496.0
20170115    274466.0
20170116    324493.0
20170117    333592.0
20170118    335652.0
20170119    300577.0
20170120    280885.0
20170121    351980.0
20170122    361073.0
...
20170802    390234.0
20170803    323639.0
20170805    396451.0
20170806    376678.0
20170807    497773.0
20170808    534007.0
20170809    458423.0
20170810    480300.0
20170812    534594.0

2. 统计每日电影单日总票房

--单日总票房
select ds, sum(boxoffice) as daily_total_box from public_data.ods_product_movie_box group by ds;

返回结果如下:

ds   daily_total_box
+---+----------------+
20170113    1158.0
20170114    1032.0
20170115    570.0
20170116    414.0
20170117    431.0
20170118    492.0
20170119    465.0
20170120    624.0
20170121    401.0
20170122    380.0
...
20170802    4650.0
20170803    2083.0
20170805    1310.0
20170806    82.0
20170807    385.0
20170808    438.0
20170809    752.0
20170810    5154.0
20170812    1017.0

 3. 统计2017前半年,单日总票房最高的十天

select ds, sum(boxoffice) as daily_total_box
from public_data.ods_product_movie_box
where ds between '20170101' and '20170630'
group by ds
order by daily_total_box desc
limit 10;

返回结果如下:

根据票房信息进行查询

1. 查询2017年前半年累计票房最高的10个电影:

-- 查询2017年前半年累计票房最高的10个电影
select distinct *
from (select * from public_data.ods_product_movie_box where ds between '20170101' and '20170630') tmp
order by sumboxoffice desc
limit 10;

返回结果如下:

这里可以看到数据并没有严格的根据sumboxoffice字段进行降序排序,具体的原因:是因为这里的sumboxoffice字段的类型为string,因此在对其进行排序时,是根据字符串的字典序进行排序的,而不是数值的大小

分析该表的数据可知,该表中的记录是每个电影在上映时间范围内的每天的数据信息,因此如果需要查找2017年前半年累计票房最高的10个电影,需要根据电影名称进行分组查询。同时修复上面的字符串数组排序问题,命令如下:

-- 查询2017年前半年累计票房最高的10个电影(子查询中没有对sumboxoffice进行类型转换)
select distinct tmp.moviename, cast(tmp.max_sumboxoffice as bigint) as sumboxoffice_num, tmp.max_ds as end_time
from (select moviename, max(sumboxoffice) as max_sumboxoffice, max(ds) as max_ds from public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630' group by moviename
) tmp
order by sumboxoffice_num desc
limit 10;

返回结果如下:

但上述查询的子查询中没有注意sumboxoffice的类型转换问题, 下面在子查询中加上max(cast(sumboxoffice as bigint))的强制类型转换,并且去掉外层查询的类型转换:

-- 查询2017年前半年,累计票房最高的10个电影(注意数据类型转换)
select distinct tmp.moviename, tmp.max_sumboxoffice as sumboxoffice_num, tmp.max_ds as end_time
from (select moviename, max(cast(sumboxoffice as bigint)) as max_sumboxoffice, max(ds) as max_ds from public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630' group by moviename
) tmp
order by sumboxoffice_num desc
limit 10;

返回结果如下,这才是正确的查询结果:

2. 查询2017年前半年,单日票房最高的10个电影。(这里不根据天来计算,例如某天单日票房第二高的电影A的票房,大于第二天单日票房第一高的电影B,那么A依然被包含在结果集中,并且排序在B之前),命令如下:

select distinct moviename, cast(boxoffice as bigint) as max_boxoffic, ds
from (select * from public_data.ods_product_movie_box where ds between '20170101' and '20170630'
) tmp
order by max_boxoffic desc
limit 10;

返回结果如下:

例如这里大闹天竺在20170127单日票房中排名第2,但它的单日票房大于20170622排名第一的变形金刚5,此时大闹天竺仍然在结果集中,并且排名在变形金刚5之前。

此外,此时的查询结果仍然有一个问题,就是排名中有重复排名的电影。这是由于变形金刚5分别在20170622,23,24三天均排名第一,因此该电影在排行榜中出现了三次。

3. 查询2017年前半年,每天单日票房最高的10个电影。

这里的单日最高,是统计前半年中每日票房最高的10个电影,以及所在的日期。不同于上面的查询,此时就不允许日期具有重复了,也就是每天中只能选取具有最高票房的一个电影参与排序。此时需要对ods_product_movie_box表进行自关联的联合查询。命令如下,其中子查询是根据ds进行分组,找到每日的最大单日票房max_boxofffice和对应的ds,然后外层查询将子查询作为一个表,对ods_product_movie_box自身进行join操作,连接的条件便是单日票房max_boxofffice和对应的ds,最后得到查询结果。

-- 查询2017年前半年,每天单日票房最高的10个电影(需要根据天(ds)分组)
select distinct t1.moviename, t2.max_boxoffice as max_boxoffice_num, t2.ds
from public_data.ods_product_movie_box as t1
join (select max(cast(boxoffice as bigint)) as max_boxoffice, dsfrom public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630'group by ds
) t2 on t1.ds=t2.ds and t1.boxoffice=t2.max_boxoffice
ORDER by max_boxoffice_num desc
limit 10;

返回结果如下:

可以看到此时,ds没有重复的数据,并且“变形金刚5”仍然是占据了20170622-24三天的最高单日票房。

4. 查询2017年前半年平均票价最高的10个电影。

这里的查询思路与上述类似,由于是找到平均票价最高的10个电影,而票房记录中存在一个电影的多个每日票价,因此这里还是需要根据moviename维度来进行去重。子查询根据moviename维度来查找平均票价最高的moviename和对应的max_avgprice,然后外层查询进行join来查询对应的moivename的上映日期,最后进行排序。

-- 查询2017年前半年平均票价最高的10个电影
select t1.moviename, t1.max_avgprice, t2.ds
from (select moviename, max(cast(avgprice as bigint)) as max_avgprice from public_data.ods_product_movie_boxgroup by moviename
) as t1
join public_data.ods_product_movie_box as t2
on t1.moviename=t2.moviename and t1.max_avgprice=t2.avgprice
where ds between '20170101' and '20170630'
order by max_avgprice desc
limit 10;

返回结果如下:

5. 查询2017年前半年上映时间最长的10个电影。

这里同样需要使用子查询,根据moviename进行分组得到moviename,max_movieday和min_ds(电影开始的上映时间),然后在通过外查询进行排序。

-- 查询2017年前半年上映时间最长的10个电影
select moviename, tmp.max_movieday as max_movieday_num, min_ds as start_ds
from (select moviename, max(cast(movieday as bigint)) as max_movieday, min(ds) as min_dsfrom public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630'group by moviename
) tmp
order by max_movieday_num desc
limit 10;

返回结果如下:

这里的上映时长有点不可思议啊, 暂时不知道是否是数据有问题。

6. 统计2017年上半年,上座率最高的10部电影。

-- 统计2017年上半年,上座率最高的10部电影
select t1.moviename, t1.max_avppeople, t2.ds, t2.movieday, t2.rank, t2.avgprice, t2.boxoffice
from (select moviename, max(cast(avppeople as bigint)) as max_avppeoplefrom public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630'group by moviename
) t1
join public_data.ods_product_movie_box t2 on t1.moviename=t2.moviename and t1.max_avppeople=t2.avppeople
order by max_avppeople desc
limit 10;

得到的结果如下:

从返回的数据中可以看到,这里上座人数最多的movieday很多都是负值,这里大致猜测一下,应该是电影的未正式上映前的点映阶段。例如这里面比较熟悉的“银河护卫队2”,在点映阶段的上座率最高,并且票价也很高。好奇看一下该电影的票房变化信息:

select moviename, movieday, rank, avgprice, avppeople, boxoffice, boxoffice_up, sumboxoffice, ds
from public_data.ods_product_movie_box
where moviename='银河护卫队2'
order by ds
limit 100;

返回结果如下:

可以看到,该电影是在0501日点映,然后在五一黄金周拿到了不少的票房,在黄金周过去后票房开始回落。

查询一个电影的每日票房信息变化

上述已经查询了“银河护卫队2”的票房变化情况,下面查询另一个电影(“乘风破浪”)从上映到下映之间的每日票房变化:

-- 查询一个电影从上映到下映之间的每日票房变化
select moviename, movieday, rank, boxoffice, sumboxoffice, ds
from public_data.ods_product_movie_box
where moviename='乘风破浪'
order by ds
limit 100;

返回结果如下:

可以看到该电影一共上映了35天,从上映第一天到下映这个范围单日排名变化、平均票价,场均人次,每日票房变化、票房浮动、以及累计票房变化。这样就可以根据ds时间维度来进行一些数据可视化的工作。

电影信息表和票房表联合查询

查询两个表公有的数据

1. 查询包含在两个表中的电影数据的10条记录:

-- 查询包含在两个表中的电影数据的10条记录
select distinct movie_name, dirctor, scriptwriter, area, actors, type, movie_length, movie_date, movie_language
from public_data.dwd_product_movie_basic_info as t1
join public_data.ods_product_movie_box as t2 on t1.movie_name=t2.moviename
limit 10;

返回结果如下:

2. 查询2017年前半年,累计票房最高的10个电影,并查看上映日期。

上面已经通过表ods_product_movie_box进行了该查询的前半部分“查询2017年前半年,累计票房最高的10个电影”,后面的电影上映时间则是需要在dwd_product_movie_basic_info表中获取。因此这里需要进行两个表的join操作。

容易想到的是使用之前的查询作为子查询,来join dwd_product_movie_basic_info表获取movie_date即可,命令如下:

-- 查询2017年前半年,累计票房最高的10个电影,并查看上映日期(存在影片重复)
select distinct t1.moviename, t1.sumboxoffice_num, t1.end_time, t2.movie_date
from (select distinct tmp.moviename, tmp.max_sumboxoffice as sumboxoffice_num, tmp.max_ds as end_timefrom (select moviename, max(cast(sumboxoffice as bigint)) as max_sumboxoffice, max(ds) as max_dsfrom public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630' group by moviename) tmporder by sumboxoffice_num desclimit 10
) t1
left join public_data.dwd_product_movie_basic_info as t2 on t1.moviename=t2.movie_name
order by t1.sumboxoffice_num desc
limit 10;

但此时得到的查询结果为:

可以看到最后的乘风破浪由于在 dwd_product_movie_basic_info表中存在多条记录,因此这里join之后会出现影片的重复。

为了去掉dwd_product_movie_basic_info表中相同影片重复的记录,需要对dwd_product_movie_basic_info表进行处理后在进行join操作:

-- 查询2017年前半年,累计票房最高的10个电影,并查看上映日期(完整)
select distinct t1.moviename, t1.sumboxoffice_num, t1.end_time, t2.movie_date
from (select distinct tmp.moviename, tmp.max_sumboxoffice as sumboxoffice_num, tmp.max_ds as end_timefrom (select moviename, max(cast(sumboxoffice as bigint)) as max_sumboxoffice, max(ds) as max_dsfrom public_data.ods_product_movie_boxwhere ds between '20170101' and '20170630' group by moviename) tmporder by sumboxoffice_num desclimit 10) t1left join (select movie_name, max(movie_date) as movie_datefrom public_data.dwd_product_movie_basic_infogroup by movie_name) as t2 on t1.moviename=t2.movie_name
order by t1.sumboxoffice_num desc
limit 10;

得到的正确查询结果如下:

可以看到,此时的查询结果去除了影片的重复,得到了正确的结果。此时也可以发现, dwd_product_movie_basic_info表中的影片数据其实不是很全面,很多影片的move_date字段都是缺失的,这应该是数据集在进行数据收集时的问题。

结语

上面对MaxCompute的公开数据集--电影及票房数据,进行了各种的SQL查询。内容包括了比较常用的一些查询过程,但仍可以使用更多的SQL来进行其他方面或维度的数据分析,有兴趣的读者可以继续进行完善。

此外,MaxCompute还公开了其他的数据集供开发使用,这里仅是选取了较为简单的一个。并且从上面的查询过程可以看出,该数据集中特别是dwd_product_movie_basic_info表中的数据,并不是很完整,可能是数据获取和清理时有一定的缺失,可以尝试在其他公开数据集中进行更加深入的处理和分析操作。

MaxCompute SQL大数据公开数据集实战相关推荐

  1. 《Spark SQL大数据实例开发》9.2 综合案例实战——电商网站搜索排名统计

    <Spark SQL大数据实例开发>9.2 综合案例实战--电商网站搜索排名统计 9.2.1 案例概述     本节演示一个网站搜索综合案例:以京东为例,用户登录京东网站,在搜索栏中输入搜 ...

  2. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载...

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  3. 人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载

    人工智能大数据,公开的海量数据集下载,ImageNet数据集下载,数据挖掘机器学习数据集下载 ImageNet挑战赛中超越人类的计算机视觉系统 微软亚洲研究院视觉计算组基于深度卷积神经网络(CNN)的 ...

  4. 开放下载!《阿里巴巴大数据及AI实战》深度解析典型场景大数据实践

    来源:开发者社区 本文约2000字,建议阅读5分钟. 阿里经济体大数据及AI典型场景最佳实践全揭秘.2019不容错过的大数据实战手册--<阿里巴巴大数据及AI实战>现在可以免费下载阅读啦! ...

  5. 【大数据框架及实战2】---初识

    [大数据框架及实战]---数据集 第一节 数据从哪里来 数据怎么用 本项目使用的数据 结构化和非结构数据 结构表的特征提取和呈现 攀登数据分析金字塔 第二节 实战项目中工具软件选型 数据采集到的技术- ...

  6. 《Python金融大数据风控建模实战》 第6章 变量分箱方法

    <Python金融大数据风控建模实战> 第6章 变量分箱方法 本章引言 Python代码实现及注释 本章引言 变量分箱是一种特征工程方法,意在增强变量的可解释性与预测能力.变量分箱方法主要 ...

  7. 电商大数据项目-推荐系统实战(一)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  8. 电商大数据项目-推荐系统实战之推荐算法(三)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  9. 大数据Spark企业级实战 PDF 下载 和目录

    大数据Spark企业级实战  PDF完整版 下载地址 http://download.csdn.net/detail/laoge/9504794 基本信息 书名:大数据Spark企业级实战 定价:12 ...

最新文章

  1. angularjs 滑块验证码 移动端_SliderCaptcha
  2. python多维字符数组_python多维数组内找指定字符串
  3. 【物联网智能网关-05】扫描键盘编程设计
  4. 05丨深入浅出索引(下)
  5. select、poll、epoll之间的区别(搜狗面试)
  6. 服务器系统怎么分配,服务器系统盘分配多大内存
  7. 2017上半年计算机教学计划,2016—2017学年度第二学期信息技术教学计划
  8. linux实现自己的write函数,Linux 内核源码阅读 - write 系统调用的实现
  9. 2021泗阳致远中学高考成绩查询,2021高考成绩什么时候发布?可通过哪些途径查询?...
  10. 想要学习UI动效设计?从这些软件入手
  11. oracle添加联合主键
  12. 蓝桥杯BASIC-28 基础练习 Huffuman树
  13. 写笔记插件_如何构建自己的笔记知识体系?
  14. 各种二进制特征提取算子(ORB 、BRIEF 、 FREAK、 BRISK)
  15. Linux ext2, ext3, ext4 文件系统解读[4]
  16. IOS-音乐播放器(附Demo)
  17. 日常消费软件记账项目
  18. excel打不开_卸载WPS以后为什么无法打开一个新建的Excel工作簿了
  19. ps切图后 JAVA开发_两种ps切图方法(图层/切片)
  20. 计算机用户被停用,电脑教程:Windows7用户被停用解决方法

热门文章

  1. 考研VS就业——选一条适合自己的路(大学三年的感悟)
  2. (附源码)计算机毕业设计SSM基于框架的旅游管理系统
  3. 记录使用gensim进行词向量增量训练(遇到的几个问题)
  4. 股票市场量化分析matlab,(特价书)MATLAB金融算法分析实战:基于机器学习的股票量化分析...
  5. 华为云服务器数据库连接失败
  6. 王道计算机网络 第一章 计算机网络
  7. 交换机与IP数据报、ICMP协议、ARP协议
  8. 链表实现电话簿(C++)
  9. 软件测试隔一日问题C++实现
  10. 自定义根证书颁发机构 CA 生成自签名证书