一、回顾
    -》Hive:为用户提供SQL接口来操作Hadoop的工具
        -》将hdfs上的文件映射成表
        -》将SQL语句转换为MapReduce程序提交给yarn
    -》hive的使用
        -》client:HQL
        -》-e:在Linux shell中执行一条命令
        -》-f:在Linux shell中执行一个sql文件
         注意:实际工作中
            -》使用脚本,将SQL语句封装到一个SQL文件
                在脚本中使用bin/hive -f xxxx.sql
            -》jdbc:cs
                java app -> hive server
            -》 beeline:统一jdbc客户端
                -》启动hiveserver2:10000
                    bin/hiveserver2
                -》启动beeline去连接hiveserver2 
                    jdbc:hive2://hostname:10000
                    !connect jdbc:hive2://hostname:10000
                    rdedu
                    rdedu
        -》web UI
            -》启动hiveserver2,默认web端口:9999
                在哪台机器启动hiveserver,你的web就在哪台机器
            -》需要自己编译hive,生成war包
                -》将war包放入lib目录下即可
    -》问题
        -》hive启动没有成功加载自定义的配置
            -》你的hive_conf_dir
                export HIVE_CONF_DIR=/opt/modules/hive-1.2.1-bin/conf
        -》mysql的连接配置
            mysql> select user,host from user;
                +------+------+
                | user | host |
                +------+------+
                | root | %    |
                +------+------+                
    -》hive元数据的三种存储方式
        -》derby
        -》本地元数据库(当前):c -> s(元数据) 
            server访问元数据库
        -》远程元数据库(公司):多个框架共同使用hive的元数据
            spark SQL、impala共享hive元数据库(表对应hdfs的位置)
            server访问元数据服务
            c -> s -> metastore(服务)
                 c ->  s       
二、表的类型

第一种:
CREATE  TABLE IF NOT EXISTS tb_name(
col1 type,
col2 type,
col3 type,
……
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
LOCATION 'HDFS_PATH';第二种:as
CREATE TABLE tb2 as SELECT …… FROM tb1;第三种:like
CREATE TABLE tb2 like tb1; 只复制表结构

强制删除非空数据库:drop database empmanager cascade;

外部表和管理表:

-》区别:在删除时
        -》外部表:只删除元数据,没有删除表目录
        -》管理表:既删除元数据也删除表目录
    -》在工作中:一般都使用外部表
        -》对于同一份数据文件,我们会创建多个表,供于多个业务分析
        -》在对同一个数据文件目录创建多个外部表时,使用location来指定

创建外部表

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name[(col_name data_type [COMMENT col_comment],[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)][ROW FORMAT row_format] [STORED AS file_format][LOCATION hdfs_path]

类型:
EXTERNAL:外部表
hive (empmanager)>

create external table dept_ext(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t';
load data local inpath '/opt/datas/dept.txt' into table dept_ext;

MANAGED_TABLE :管理表(默认)
hive (empmanager)>

create table dept_mgr(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t';
load data local inpath '/opt/datas/dept.txt' into table dept_mgr;

验证:

[root@bigdata-training01 hadoop-2.6.0-cdh5.7.6]#bin/hdfs  dfs -put /opt/datas/dept.txt /user/hive/warehouse/empmanager.db/dept_ext/dept2.txt;

Permission    Owner    Group    Size    Last Modified    Replication    Block Size    Name
-rwxr-xr-x    rdedu    supergroup    79 B    2019/9/7 下午4:25:47    1    128 MB    dept.txt
-rw-r--r--      rdedu    supergroup    79 B    2019/9/7 下午4:32:16    1    128 MB    dept2.txt

hive (empmanager)>

select * from  dept_ext;

dept_ext.deptno dept_ext.dname  dept_ext.loc
10               ACCOUNTING      NEW YORK
20               RESEARCH        DALLAS
30               SALES           CHICAGO
40               OPERATIONS      BOSTON
10               ACCOUNTING      NEW YORK
20               RESEARCH        DALLAS
30               SALES           CHICAGO
40               OPERATIONS      BOSTON

#外部表通过location来指定导入的文件
create external table dept_ext1(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t'
location '/user/hive/warehouse/test/dept';       create external table dept_ext2(
deptno int,
dname string,
loc string
)
row format delimited fields terminated by '\t'
location '/user/hive/warehouse/test/dept';  

使用hive等SQL on hadoop 工具
  SQL:子查询,join
        rdbms:相对来说较难
        大数据:所有的业务都可以进行拆分
            -》先将内部查询的结果报错
            -》再对结果进行外部查询操作
https://tech.meituan.com/user-funnel-analysis-design-build.html

select count (distinct t1.id1), count (distinct t2.id2), count (distinct t3.id3)
from (select uuid id1, timestamp ts1 from data where timestamp >= 1510329600 and timestamp < 1510416000 and page = '首页') t1left join(select uuid id2, timestamp ts2 from data where timestamp >= 1510329600 and timestamp < 1510416000 and page = '搜索' and keyword = '中餐') t2on t1.id1 = t2.id2 and t1.ts1 < t2.ts2 and t2.ts2 - t1.ts1 < 3600left join(select uuid id3, timestamp ts3 from data where timestamp >= 1510329600 and timestamp < 1510416000 and page = '菜品') t3on t1.id1 = t3.id3 and t2.ts2 < t3.ts3 and t1.ts1 < t3.ts3 and t3.ts3 - t1.ts1 < 3600

kylin/impala
链家上海二手房分析
https://zhuanlan.zhihu.com/p/24802969
数据获取及加载

DROP DATABASE IF EXISTS second_house;
CREATE DATABASE second_house;
USE second_house;

数据源表
小区  房型  面积  地区          楼层  朝向  总价  单价  建造年份
梅园六街坊,2室0厅,47.72,浦东,低区/6层,朝南,500,104777,1992年建

CREATE TABLE 2nd_sh_house(
village_name string,
house_type string,
house_area double,
region string,
house_floor string,
direction string,
total_price double,
single_price double,
build_date string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
load data local inpath '/opt/datas/2nd_house_price.csv' into table 2nd_sh_house;

数据的清洗:ETL:数据业务表
    -》字段过滤
    -》字段补全:
    -》字段格式化

数据分析统计
 1、户型分布
房型
   一室  二室  三室  四室  五室  五室以上

##设置本地模式会快一点
set hive.exec.mode.local.auto;
set hive.exec.mode.local.auto=true;
select a.house_type2 ,count(1) as number from (
SELECT village_name,house_type,CASEWHEN substring(house_type,0,1) = 1 THEN '一室'WHEN substring(house_type,0,1) = 2 THEN '两室'WHEN substring(house_type,0,1) = 3 THEN '三室'WHEN substring(house_type,0,1) = 4 THEN '四室'WHEN substring(house_type,0,1) = 5 THEN '五室'WHEN substring(house_type,0,1) > 5 THEN '五室以上'ELSE '不合法'END AS house_type2
FROM2nd_sh_house
) as a
GROUP BY a.house_type2
order by number desc;

a.house_type2   number
两室                   13534
三室                    7456
一室                    5210
四室                    1414
五室                    444
五室以上             143
Time taken: 8.518 seconds, Fetched: 6 row(s)

2、二手房的面积和房价的分布
面积  50平以下   50-70平  70-90平  90-110平 110-130平    130-150平 150平以上

SELECT village_name,house_area,CASEWHEN house_area  > 150 THEN '150平以上'WHEN house_area  > 130 THEN '130-150平'WHEN house_area  > 110 THEN '110-130平'WHEN house_area  > 90 THEN '90-130平'WHEN house_area  > 70 THEN '70-90平'WHEN house_area  > 50 THEN '50-70平'ELSE '50平以下'END AS area_type
FROM2nd_sh_house limit 10;

village_name                                house_area      area_type
梅园六街坊                                     47.72              50平以下
碧云新天地(一期)                       108.93            90-130平
博山小区                                         43.79               50平以下
金桥新村四街坊(博兴路986弄)   41.66              50平以下
博山小区                                         39.77               50平以下
潍坊三村                                         34.84               50平以下
伟莱家园                                         100.15             90-130平
世茂滨江花园                                  260.39            150平以上
羽北小区                                         69.88               50-70平
证大家园(公寓)                          122.75             110-130平
Time taken: 0.165 seconds, Fetched: 10 row(s)

Day15_20180503_链家二手房信息案例分析相关推荐

  1. python分析链家二手房信息----数据分析实战(一)

    链家二手房信息 # 导入需要的库:科学计算包numpy, pandas 可视化包matplotlib, seaborn 机器学习包 sklearn import numpy as np import ...

  2. python关于二手房的课程论文_基于python爬取链家二手房信息代码示例

    基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...

  3. PyQt5+Python+Excel链家二手房信息爬取、可视化以及数据存取

    成果图: 第一步运行代码searsh.py,效果如下 第二步选择你所需要爬取数据的城市,如湖北-武汉 然后搜索,结果如下 如果你想爬取更多信息,只需要点击下一页即可 第三步,保存数据.可以将所显示的所 ...

  4. python爬虫requests源码链家_python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  5. python爬虫代码房-python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  6. python二手房使用教程_python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  7. python爬虫requests源码链家_python数据分析实例:python抓取链家二手房源数据和分析...

    python语言,在数据分析方面,涵盖了"数据获取→数据处理→数据分析→数据可视化"这个流程中每个环节,不可不谓之为利器. 本篇文章我们就利用python语言在数据分析方面的应用, ...

  8. python采集链家二手房信息

    都说现在的房价很高,具体有多高呢,我们一起来看看. 现在网上关于房子的价格以及交易信息鱼龙混杂,与实际情况相差比较大,目前链家平台的数据应该是相对比较可靠的,所以这次我们就打算去链家爬一爬. 说到爬虫 ...

  9. python爬取链家二手房信息

    爬取过程分析: 1.链家网url:https://bj.lianjia.com/ershoufang/pg2/ 显示的二手房信息每个url递增一 2.访问时要加头信息,否则无法访问 3.用beauti ...

  10. python链家二手房_python 爬取链家二手房信息

    '''Created on 2017-10-9 @author: wbhuangzhiqiang''' importsysimportreimportcsvimporturllib.requestfr ...

最新文章

  1. 2021年大数据常用语言Scala(一):Scala简介
  2. 微软的公开的DLL库
  3. 定义一个复数类Complex,重载运算符+
  4. 转:如何调用另一个python文件中的代码
  5. linux固定分辨率,如何锁定分辨率
  6. 入门JavaScript?看懂这篇文章就够了!——Web前端系列学习笔记
  7. 一个简单的linux线程池
  8. The response status was 0. Check out the W3C XMLHttpRequest Level 2 spec for
  9. Hibernate 4.3 ORM工具
  10. Java相关资料分享(视频+电子书籍)
  11. 树莓派使用STEP3:更换镜像源
  12. php找不同的数组元素,PHP实现查询两个数组中不同元素的方法
  13. HDU1847 Good Luck in CET-4 Everybody!
  14. 我的BRF+自学教程(一):公式(formula)
  15. TP5 使用redis
  16. 最新伯乐PHP个人在线自动发卡网源码V3.1
  17. 基于taskctl实现kettle任务调度
  18. 技嘉主板bios设置方法
  19. SeaweedFS安装部署
  20. 【上位机教程】CANopen通信下一体化步进电机与台达PLC(AS228T)的应用

热门文章

  1. 香港内推 | 上海千象资产招聘海外CTA量化研究实习生
  2. 思科路由器配置命令(一)
  3. springboot整合couchbase
  4. 梦幻西游默认服务器怎么修改器,梦幻西游古龙服务端安装教程
  5. Ubuntu 安装 brightness-controller 调节显示亮度
  6. html广告代码自适应,很实用的对联广告代码(自适应高度)
  7. 电视机进入工厂模式,factory,怎么退出
  8. 用计算机解决问题时 首先应该确定程序,算法与程序设计试题带答案
  9. RainMeter使用教程一篇
  10. CommScope将收购ARRIS:交易金额约达74亿美元,将加速实现CommScope塑造未来通信网络的愿景