數據洞察:從零到一的數據倉庫與Navicat連接全攻略【實訓Day04】[完結篇]

一、數據分析

1 實現數據倉庫(在hadoop101上)

1) 創建jobdata數據庫

# cd $HIVE_HOME?
# bin/hive?
hive>create database jobdata;
hive>use jobdata;

2) 創建原始職位數據事實表ods_jobdata_orgin(在hadoop101上)

create table ods_jobdata_origin(
city string COMMENT '城市',
salary array<String> COMMENT '薪資',
company array<String> COMMENT '福利',
kill array<String> COMMENT '技能')
COMMENT '原始職位數據表'
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
COLLECTION ITEMS TERMINATED BY '-' 
STORED AS TEXTFILE;

3) 將HDFS上預處理的數據導入到ods_jobdata_orgin(在hadoop101上)

hive>load data inpath '/JobData/output/part-r-00000' overwrite into table ods_jobdata_origin ;hive>select * from ods_jobdata_origin;

4) 創建職位數據明細表 ods_jobdata_detail(在hadoop101上)

hive>create table ods_jobdata_detail(city string COMMENT '城市',salary array<String> COMMENT '薪資',company array<String> COMMENT '福利',kill array<String> COMMENT '技能',low_salary int COMMENT '低薪資',high_salary int COMMENT '高薪資',avg_salary double COMMENT '平均薪資')COMMENT '職位數據明細表'ROW FORMAT DELIMITEDFIELDS TERMINATED BY ','STORED AS TEXTFILE;

5) 向職位數據明細表導入數據

hive>insert overwrite table ods_jobdata_detailselectcity,salary,company,kill,salary[0],salary[1],(salary[0]+salary[1])/2from ods_jobdata_origin;

6) 創建臨時表t_ods_tmp_salary(在hadoop101上)

hive>create table t_ods_tmp_salary asselect explode(ojo.salary) fromods_jobdata_origin ojo;

7) 創建工資處理表 t_ods_tmp_salary_dist(在hadoop101上)

hive>create table t_ods_tmp_salary_dist asselect case when col>=0 and col<=5 then '0-5'when col>=6 and col<=10 then '6-10'when col>=11 and col<=15 then '11-15'when col>=16 and col<=20 then '16-20'when col>=21 and col<=25 then '21-25'when col>=26 and col<=30 then '26-30'when col>=31 and col<=35 then '31-35'when col>=36 and col<=40 then '36-40'when col>=41 and col<=45 then '41-45'when col>=46 and col<=50 then '46-50'when col>=51 and col<=55 then '51-55'when col>=56 and col<=60 then '56-60'when col>=61 and col<=65 then '61-65'when col>=66 and col<=70 then '66-70'when col>=71 and col<=75 then '71-75'when col>=76 and col<=80 then '76-80'when col>=81 and col<=85 then '81-85'when col>=86 and col<=90 then '86-90'when col>=91 and col<=95 then '91-95'when col>=96 and col<=100 then '96-100'when col>=101 then '>101' end fromt_ods_tmp_salary;

8) 創建福利標簽臨時表t_ods_tmp_company(在hadoop101上)

hive>create table t_ods_tmp_company asselect explode(ojo.company)from ods_jobdata_origin ojo;

9) 創建技能標簽臨時表t_ods_tmp_kill(在hadoop101上)

hive>create table t_ods_tmp_kill asselect explode(ojo.kill)from ods_jobdata_origin ojo;

10) 創建技能維度表t_ods_kill(在hadoop101上)

hive>create table t_ods_kill(every_kill String comment '技能標簽',count int comment '詞頻')COMMENT '技能標簽詞頻統計'ROW FORMAT DELIMITEDfields terminated by ','STORED AS TEXTFILE;

11)創建福利維度表t_ods_company(在hadoop101上)

hive>create table t_ods_company(every_company String comment '福利標簽',count int comment '詞頻')COMMENT '福利標簽詞頻統計'ROW FORMAT DELIMITEDfields terminated by ','STORED AS TEXTFILE;

12)創建城市維度表t_ods_city(在hadoop101上)

hive>create table t_ods_city(every_city String comment '城市',count int comment '詞頻')COMMENT '城市統計'ROW FORMAT DELIMITEDfields terminated by ','STORED AS TEXTFILE;

13) 職位區域分析

hive>insert overwrite table t_ods_cityselect city,count(1)from ods_jobdata_origin group by city;hive>select *  from t_ods_city sort by count desc;

14) 創建薪資維度表

hive>create table t_ods_salary(every_partition String comment '薪資分布',count int comment '聚合統計')COMMENT '薪資分布聚合統計'ROW FORMAT DELIMITEDfields terminated by ','STORED AS TEXTFILE;

15) 職位薪資分析(全國薪資分布情況)

hive>insert overwrite table t_ods_salaryselect `_c0`,count(1)from t_ods_tmp_salary_dist group by `_c0`;hive>select * from t_ods_salary sort by count desc;

16) 職位薪資分析(薪資的平均值、中位數和眾數)

hive>select avg(avg_salary) from ods_jobdata_detail;hive>select avg_salary,count(1) as cnt from ods_jobdata_detail group by avg_salary order by cnt desc limit 1;hive>select percentile(cast(avg_salary as BIGINT),0.5) from ods_jobdata_detail;

17) 職位薪資分析(各城市平均薪資待遇)

hive>select city,count(city),round(avg(avg_salary),2) as cntfrom ods_jobdata_detailgroup by city order by cnt desc;

18) 公司福利分析

hive>insert overwrite table t_ods_companyselect col,count(1)from t_ods_tmp_company group by col;hive>select every_company,countfrom t_ods_companysort by count desc limit 10;

systemctl status mysqld.service 查看狀態

二、連接navicat

? ? ? ? ? ?

1.建表

create table t_city_count(
city varchar(30) DEFAULT NULL,
count int(5) DEFAULT NULL)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
create table t_salary_dist(
salary varchar(30) DEFAULT NULL,
count int(5) DEFAULT NULL)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
create table t_company_count(
company varchar(30) DEFAULT NULL,
count int(5) DEFAULT NULL)
ENGINE=InnoDB DEFAULT CHARSET=utf8;
create table t_kill_count(
kills varchar(30) DEFAULT NULL,
count int(5) DEFAULT NULL)
ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.啟動sqoop傳輸文件,把hive數據庫傳輸到mysql數據庫

bin/sqoop export \
--connect jdbc:mysql://hadoop101:3306/JobData?characterEncoding=UTF-8 \
--username root \
--password 123456 \
--table t_city_count \
--columns "city,count" \
--fields-terminated-by ',' \
--export-dir /user/hive/warehouse/jobdata.db/t_ods_city;

在這個目錄下執行上面的命令

bin/sqoop export \
--connect jdbc:mysql://hadoop101:3306/JobData?characterEncoding=UTF-8 \
--username root \
--password 123456 \
--table t_salary_dist \
--columns "salary,count" \
--fields-terminated-by ',' \
--export-dir /user/hive/warehouse/jobdata.db/t_ods_salary;
bin/sqoop export \
--connect jdbc:mysql://hadoop101:3306/JobData?characterEncoding=UTF-8 \
--username root \
--password 123456 \
--table t_company_count \
--columns "company,count" \
--fields-terminated-by ',' \
--export-dir /user/hive/warehouse/jobdata.db/t_ods_company;

bin/sqoop export \
--connect jdbc:mysql://hadoop101:3306/JobData?characterEncoding=UTF-8 \
--username root \
--password 123456 \
--table t_kill_count \
--columns "kills,count" \
--fields-terminated-by ',' \
--export-dir /user/hive/warehouse/jobdata.db/t_ods_kill;

3.添加依賴

pom.xml添加內容

<dependencies><!--1.阿里云json處理jar包--><dependency><groupId>org.codehaus.jettison</groupId><artifactId>jettison</artifactId><version>1.5.4</version></dependency><!--2.spring-context--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.5.RELEASE</version></dependency><!--3.spring-beans--><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.2.5.RELEASE</version></dependency><!--4.spring-webmvc 網站設計--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><!--5.spring-jdbc連接數據庫--><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.2.5.RELEASE</version></dependency><!--6.spring-aspects是AOP切面編程--><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.2.5.RELEASE</version></dependency><!--7.spring-jms異步消息通信--><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>5.2.5.RELEASE</version></dependency><!--8.spring-context-support框架擴展模塊--><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>5.2.5.RELEASE</version></dependency><!--9.mybatis框架--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.1</version></dependency><!--10.mybatis-spring--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.1</version></dependency><!--11.mybatis分頁插件--><dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId><version>1.2.15</version></dependency><!--12.mysql驅動模塊--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.9</version></dependency><!--13.阿里巴巴數據庫連接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.16</version><exclusions><exclusion><groupId>com.alibaba</groupId><artifactId>jconsole</artifactId></exclusion><exclusion><groupId>com.alibaba</groupId><artifactId>tools</artifactId></exclusion></exclusions></dependency><!--14.jsp的標準標簽庫--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--15.servlet的標準API--><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version></dependency><!--16.jsp的標準API--><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.1</version></dependency><!--17.測試包--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--18.處理JSON數據類型--><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.10.1</version></dependency><!--19.面向切面編程的功能模塊--><dependency><groupId>org.aspectj</groupId><artifactId>aspectjweaver</artifactId><version>1.9.22</version></dependency></dependencies>
<build><finalName>JobData-Web</finalName><!--資源搜索設置--><resources><!--1.搜索java文件夾中類型--><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><!--2.搜索resources文件夾的類型--><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes></resource></resources><!--插件管理--><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>1.8</source><target>1.8</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>

4.db.properties添加內容

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://hadoop101:3306/JobData?characterEncoding=utf8
jdbc.username=root
jdbc.password=123456

5.echarts-view.js添加內容

6.下載tomcata

將其放在根盤符下,解壓縮tomcat到其目錄E:\apache-tomcat-8.5.61

7.重啟tomcat

刪除上方紅框內容

8.查看報錯內容

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'cityServiceImpl': Unsatisfied dependency expressed through field 'mapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'cn.aust.mapper.CityMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

出現該問題解決方案

最終效果展示:


Day04:完結~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40154.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Keepalived+LVS實現負責均衡,高可用的集群

Keepalived的設計目標是構建高可用的LVS負載均衡群集&#xff0c;可以調用ipvsadm工具來創建虛擬服務器&#xff0c;管理服務器池&#xff0c;而不僅僅用作雙機熱備。使用Keepalived構建LVS群集更加簡便易用&#xff0c;主要優勢體現在&#xff1a;對LVS負責調度器實現熱備切換…

配置并調試后端程序(sql)

1.環境準備 安裝VS Code和Node.js插件&#xff1a;確保你已經安裝了VS Code和Node.js插件。創建launch.json文件&#xff1a;在你的項目中創建一個.vscode文件夾&#xff0c;并在其中創建launch.json文件。添加以下內容&#xff1a; {"version": "0.2.0"…

uniapp 數據父傳子

文章目錄 可能出現的問題 在uni-app中&#xff0c;父組件向子組件傳遞數據主要通過屬性綁定的方式實現。這里提供一個簡單的示例來說明如何進行父傳子的數據傳遞&#xff1a; 父組件 準備數據: 在父組件的data中定義要傳遞的數據。 export default {data() {return {parentMe…

@ControllerAdice統一返回值類型【Spring源碼學習】

我們可以通過在ControllerAdvice注解類上實現ResponseBodyAdvice注解來實現統一返回值類型&#xff1b; 例如統一接口的返回類型為Result類 ControllerAdvice static class MyControllerAdvice implements ResponseBodyAdvice<Object> {Overridepublic boolean supports…

PLC基礎知識

1.PLC中的數據寄存器地址D表示存數據的地方。 2.PLC的物理存儲器的規定&#xff1a;PLC存儲器以字節為單位&#xff08;Byte&#xff09;&#xff0c;存儲單元以位&#xff08;Bit&#xff09;、字節&#xff08;B&#xff0c;8Bit&#xff09;、字&#xff08;W&#xff0c;1…

谷歌優化師招聘網站:夢想啟航的舞臺,實現職業理想的起點

尊敬的夢想實踐者們&#xff0c;歡迎您走進谷歌優化師招聘網站這個充滿魔力的領域。這里不僅是一個招聘平臺&#xff0c;更是您實現職業理想的起點&#xff0c;激發熱情的舞臺。現在&#xff0c;請做好準備&#xff0c;與我們共同揭開這個神秘世界的面紗&#xff01; 夢想啟航…

電子行業MES系統解決方案

工業4.0時代的工業自動化&#xff0c;將在原有自動化技術和架構下&#xff0c;實現集中式控制向分散式增強型控制的基本模式轉變&#xff0c;讓設備從傳感器到因特網的通訊能夠無縫對接&#xff0c;從而建立一個高度靈活的、個性化和數字化、融合了產品與服務的生產模式。在這種…

上海市計算機學會競賽平臺2022年11月月賽丙組染色問題

題目描述 &#x1d45b;n 個點排成一列&#xff0c;需要給每個點一個顏色&#xff0c;顏色有 &#x1d45a;m 種。請問有多少種方法&#xff0c;能使任意相鄰兩個點的顏色均不相同&#xff1f; 輸入格式 兩個整數&#xff1a;表示 &#x1d45b;n 與 &#x1d45a;m 輸出格…

【控制Android.bp的編譯】

1.首先Android.bp的語法是不支持if 條件語句的 2.查到可以用enabled來控制Android.bp中的模塊是否參與編譯&#xff0c;但是并不能實現動態的控制&#xff0c;比如你需要根據獲取到的安卓版本來控制一個Android.bp是否編譯&#xff0c;是無法做到的。enabled只能是固定的true或…

spark shuffle寫操作——BypassMergeSortShuffleWriter

創建分區文件writer 每一個分區都生成一個臨時文件&#xff0c;創建DiskBlockObjectWriter對象&#xff0c;放入partitionWriters 分區writer寫入消息 遍歷所有消息&#xff0c;每一條消息都使用分區器選擇對應分區的writer然后寫入 生成分區文件 將分區writer的數據flu…

Java中初始化一個List的多種方式

1.最原始的方式&#xff1a;先創建&#xff0c;然后再添加元素 List<String> list new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("cherry");2.使用Arrays.asList 這是一種快速方便的方式&#xff0c;直接…

從海上長城到數字防線:視頻技術在海域邊防現代化中的創新應用

隨著全球化和科技發展的加速&#xff0c;海域安全問題日益凸顯其重要性。海域邊防作為國家安全的第一道防線&#xff0c;其監控和管理面臨著諸多挑戰。近年來&#xff0c;視頻技術的快速發展為海域邊防場景提供了新的解決方案&#xff0c;其高效、實時、遠程的監控特點極大地提…

面試八股Day1

JavaSE&#xff08;回顧&#xff09; 什么是java? java跟c的區別&#xff1f;Java語言有哪些特點&#xff1f;JVM、JDK和JRE有什么區別&#xff1f;什么是跨平臺性&#xff1f;原理是什么&#xff1f;什么是字節碼&#xff1f;采用字節碼的好處是什么&#xff1f; 說說Java程…

如何快速開展每日待辦工作 待辦任務高效管理

每天&#xff0c;我們都需要處理大量的待辦工作&#xff0c;如何高效有序地開展這些工作成為了我們必須要面對的問題。僅僅依靠個人的記憶和腦力去管理這些繁雜的事務&#xff0c;顯然是一項艱巨的挑戰。在這個時候&#xff0c;如果能有一款實用的待辦工具來輔助我們&#xff0…

深入理解Spring應用中的初始化和清理代碼執行方式

目錄 引言使用PostConstruct和PreDestroy注解 PostConstructPreDestroy 實現InitializingBean和DisposableBean接口 afterPropertiesSet()destroy() 使用init-method和destroy-method屬性 init-methoddestroy-method 使用Bean注解的initMethod和destroyMethod屬性 initMethodd…

【高級篇】第8章 Elasticsearch 安全與權限管理

在深入探討Elasticsearch高級應用的征途中,我們無法忽視其核心——安全與權限管理的重要性。此章節將為你全面剖析如何構建一個既強大又安全的數據搜索與分析平臺。本章內容將圍繞X-Pack的強大功能展開,深入用戶與角色管理的實踐,以及如何利用SSL/TLS加密來強化數據傳輸的安…

如何使用C++調用Pytorch模型進行推理測試:使用libtorch庫

如何使用C調用Pytorch模型進行推理測試&#xff1a;使用libtorch庫 目錄 如何使用C調用Pytorch模型進行推理測試&#xff1a;使用libtorch庫一、環境準備1&#xff0c;linux&#xff1a;以ubuntu 22.04系統為例1. 準備CUDA和CUDNN2. 準備C環境3, 下載libtorch文件4, 編寫測試li…

期權學習必看圣書:《3小時快學期權》要在哪里看?

今天帶你了解期權學習必看圣書&#xff1a;《3小時快學期權》要在哪里看&#xff1f;《3小時快學期權》是一本關于股票期權基礎知識的書籍。 它旨在通過簡明、易懂的語言和實用的案例&#xff0c;讓讀者在短時間內掌握股票期權的基本概念、操作方法和投資策略。通過這本書&…

img的onload事件不觸發

var img new Image(); img.src "圖片地址" img.addEventListener(load, function() {// 加載完后的處理 }, false);上面的代碼&#xff0c;可能存在設置addEventListener之前&#xff0c;圖片已經加載完了&#xff0c;onload事件不處罰。 調換一下img.src和img.add…

Linux系統(CentOS)安裝Mysql5.7.x

安裝準備&#xff1a; Linux系統(CentOS)添加防火墻、iptables的安裝和配置 請訪問地址&#xff1a;https://blog.csdn.net/esqabc/article/details/140209894 1&#xff0c;下載mysql安裝文件&#xff08;mysql-5.7.44為例&#xff09; 選擇Linux通用版本64位&#xff08;L…