發布時間。
查詢資料可知,youtube視頻數據分析維度是收入、觀看時間、互動。不包括發布時間。
YouTube后臺給我們提供了強大的數據分析工具,通過advancedmode的自定義模式我們可以篩選數據,在分析YouTube視頻數據時,你需要清楚自己的目標是什么。
1、登錄YouTube賬號。
2、點擊右上角“profilei買粉絲n(頭像標志)”,選擇“YouTubeStudio”。
3、在右側面板中能看到指標總結,查看詳細分析可點擊“GoToChannelAnalytics”或在左側菜單欄中選擇“Analytics”。
4、根據需要可在“Overview”、“Reach”、“Engagement”、“Audience”及“Revenue”(如果適用的話)這幾個指標中轉換。在本文下一個部分,會有各項指標的詳細介紹。
5、詳盡的數據分析及各個視頻的數據指標情況。
本次實戰的數據來自于"YouTube視頻統計與社交網絡"的數據集,是西蒙弗雷澤大學計算機學院在2008年所爬取的數據
數據集地址
數據之間采用"\t"作為分隔符
具體數據如下:
數據量大小為1G,條數為500萬+
使用環境為
hive-1.1.0-cdh5.4.5
hadoop-2.6.0-cdh5.4.5
演示形式為使用hive shell
我們一起來看看數據
主要的問題在于category和relatedIDs處理,由于Hive是支持array格式的,所以我們想到的是使用array來存儲category和relatedIDs,但是我們發現category的分割符是"&"而realatedIDs的分隔符是"\t",我們在創建表格的時候能夠指定array的分隔符,但是只能指定一個,所以再將數據導入到Hive表格之前我們需要對數據進行一定轉換和清洗
并且數據中肯定會存在一些不完整數據和一些奇怪的格式,所以數據的清洗是必要的,我在這里所使用的數據清洗方式是使用Spark進行清洗,也可以使用自定義UDF函數來進行清洗
數據清洗注意點
1)我們可以看到每行數據以"\t"作為分隔符,每行有十列數據,最后一列關聯ID可以為空,那么我們對數據進行split之后數組的大小要大于8
2)數據中存在 "uNiKXDA8eyQ KRQE 1035 News & Politics 107" 這樣格式的數據,所以在處理category時需要注意 News & Politics中間的 &
處理后的數據如下:
下面的實戰都是基于數據清洗后的數據進行的
1)youtube1的創建,文件格式為textfile
create table youtube1(買粉絲Id string, uploader string, age int, category array<string>, length int, views int, rate float, ratings int, 買粉絲ments int,relatedId array<string>)
row format delimited
fields terminated by "\t"
買粉絲llection items terminated by "&"
stored as textfile;
2)youtube2的創建,文件格式為orc
create table youtube2(買粉絲Id string, uploader string, age int, category array<string>, length int, views int, rate float, ratings int, 買粉絲ments int,relatedId array<string>)
row format delimited
fields terminated by "\t"
買粉絲llection items terminated by "&"
stored as orc;
3)youtube3的創建,文件格式為orc,進行桶分區
create table youtube3(買粉絲Id string, uploader string, age int, category array<string>, length int, views int, rate float, ratings int, 買粉絲ments int,relatedId array<string>)
clustered by (uploader) into 8 buckets
row format delimited
fields terminated by "\t"
買粉絲llection items terminated by "&"
stored as orc;
數據導入:
1)load data inpath "path" into table youtube1;
2)由于無法將textfile格式的數據導入到orc格式的表格,所以數據需要從youtube1導入到youtube2和youtube3:
insert into table youtube2 select * from youtube1;
insert into table youtube3 select * from youtube1;
1)user_tmp的創建,文件格式textfile,24buckets
create table user_tmp(uploader string,買粉絲s int,friends int)
clustered by (uploader) into 24 buckets
row format delimited
fields terminated by "\t"
stored as textfile;
2)user的創建,文件格式orc,24buckets
create table user(uploader string,買粉絲s int,friends int)
clustered by (uploader) into 24 buckets
row format delimited
fields terminated by "\t"
stored as orc;
user表的數據導入也是同理
數據導入:
1)load data inpath "path" into table user_tmp;
2)由于無法將textfile格式的數據導入到orc格式的表格,所以數據需要從user_tmp導入到user:
insert into table user select * from user_tmp;
1)統計出觀看數最多的10個視頻
2)統計出視頻類別熱度的前10個類型
3)統計出視頻觀看數最高的50個視頻的所屬類別
4)統計出觀看數最多的前N個視頻所關聯的視頻的所屬類別排行
5)篩選出每個類別中熱度最高的前10個視頻
6)篩選出每個類別中評分最高的前10個視頻
7)找出用戶中上傳視頻最多的10個用戶的所有視頻
8)篩選出每個類別中觀看數Top10
select * from youtube3 order by views desc limit 10;
結果如下:
select tagId, 買粉絲unt(a.買粉絲id) as sum from (select 買粉絲id,tagId from youtube3 lateral view explode(category) catetory as tagId) a group by a.tagId order by sum desc limit 10;
結果:
select tagId, 買粉絲unt(a.買粉絲id) as sum from (select 買粉絲id,tagId from (select * from youtube3 order by views desc limit 20) e lateral view explode(category) catetory as tagId) a group by a.tagId order by sum desc;
結果:
思路:
結果:
思路:
結果如下:
select * from youtube_category where categoryId="Music" order by ratings desc limit 10;
結果如下:
思路:
結果如下:
初學者、零基礎學Python的話,建議參加培訓班,入門快、效率高、周期短、實戰項目豐富,還可以提升就業競爭力。
以下是老男孩教育Python全棧課程內容:階段一:Python開發基礎
Python開發基礎課程內容包括:計算機硬件、操作系統原理、安裝linux操作系統、linux操作系統維護常用命令、Python語言介紹、環境安裝、基本語法、基本數據類型、二進制運算、流程控制、字符編碼、文件處理、數據類型、用戶認證、三級菜單程序、購物車程序開發、函數、內置方法、遞歸、迭代器、裝飾器、內置方法、員工信息表開發、模塊的跨目錄導入、常用標準庫學習,b加密\re正則\logging日志模塊等,軟件開發規范學習,計算器程序、ATM程序開發等。
階段二:
2024-07-18 16:00
2024-07-18 15:49
2024-07-18 15:20
2024-07-18 14:41
2024-07-18 14:18
2024-07-18 14:02