当前位置:首页 > CN2资讯 > 正文内容

windows10 安装hive库 hivesql安装

12小时前CN2资讯


安装 brew

国内安装brew使用下面的脚本:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

安装hive

brew install hive

HIVE执行sql语句

hive能直接将sql语句转化为mapreduce代码(下面链接写的非常好)

https://geek-docs.com/hive/hive-tutorial/introduction-of-hive.html
第二张图reduce的过程是拿<x,y>, 每一项的y,分别作为pageid, age

如果我们提交的是查询分析数据的DQL(数据查询语句),Driver就会将该语句提交给自己的编译器Compiler进行语法分析、语法解析、语法优化等一系列操作,最后生成一个MapReduce执行计划。然后根据执行计划生成一个MapReduce的作业,提交给Hadoop MapReduce计算框架处理。

Hive内部预置了很多函数,Hive的执行计划就是根据SQL语句生成这些函数的DAG(有向无环图),然后封装进MapReduce的map和reduce函数中。这个例子中,map函数调用了三个Hive内置函数TableScanOperator、FilterOperator、FileOutputOperator,就完成了map计算,而且无需reduce函数。

SQL教程

SQL不分大小写

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引

SELECT

SELECT LastName,FirstName FROM Persons #选取所有列 SELECT * FROM Persons #返回唯一的值 SELECT DISTINCT 列名称 FROM 表名称

Where

SELECT * FROM Persons WHERE City='Beijing' #关于数值的值 这是正确的: SELECT * FROM Persons WHERE FirstName='Bush' SELECT * FROM Persons WHERE Year>1965

AND和OR

#使用括号来一起使用and和or SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'

Order by

SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC

Insert

INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')

Update

# UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'

TOP

#选择开头几个或者开头50% SELECT TOP 2 * FROM Persons SELECT TOP 50 PERCENT * FROM Persons

Like

指定pattern

现在,我们希望从上面的 "Persons" 表中选取居住在以 "N" 开始的城市里的人 SELECT * FROM Persons WHERE City LIKE 'N%' 接下来,我们希望从 "Persons" 表中选取居住在以 "g" 结尾的城市里的人: SELECT * FROM Persons WHERE City LIKE '%g

IN

指定选值范围 SELECT * FROM Persons WHERE LastName IN ('Adams','Carter')

BETWEEN

指定数据范围 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2 如需以字母顺序显示介于 "Adams"(包括)和 "Carter"(不包括)之间的人,请使用下面的 SQL: SELECT * FROM Persons WHERE LastName BETWEEN 'Adams' AND 'Carter'

ALIAS

表的别名

假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。 现在,我们希望列出 "John Adams" 的所有定单。 SELECT po.OrderID, p.LastName, p.FirstName FROM Persons AS p, Product_Orders AS po WHERE p.LastName='Adams' AND p.FirstName='John'

使用别名就是为了好读, 精简sql语句

JOIN

where和join

**where** SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P **join** SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons INNER JOIN Orders ON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName

inner join:理解为“有效连接”,两张表中都有的数据才会显示
left join:理解为“有左显示”,比如on a.field=b.field,则显示a表中存在的全部数据及a、b中都有的数据,a中有、b中没有的数据以null显示
right join:理解为“有右显示”,比如on a.field=b.field,则显示b表中存在的全部数据及a、b中都有的数据,b中有、a中没有的数据以null显示
full join:理解为“全连接”,两张表中所有数据都显示,实际就是inner +(left-inner)+(right-inner)

join等同于inner join 等同于where

Full join

现在,我们希望列出所有的人,以及他们的定单,以及所有的定单,以及定购它们的人。

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons FULL JOIN Orders ON Persons.Id_P=Orders.Id_P ORDER BY Persons.LastName

FULL JOIN 关键字会从左表 (Persons) 和右表 (Orders) 那里返回所有的行。如果 “Persons” 中的行在表 “Orders” 中没有匹配,或者如果 “Orders” 中的行在表 “Persons” 中没有匹配,这些行同样会列出。

UNION

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

# 只返回两张表不同的值 SELECT column_name(s) FROM table_name1 UNION SELECT column_name(s) FROM table_name2 # 返回两张表所有值 SELECT column_name(s) FROM table_name1 UNION ALL SELECT column_name(s) FROM table_name2

数据库和表

数据库: database

CREATE DATABASE database_name

表: table

本例演示如何创建名为 "Person" 的表。 该表包含 5 个列,列名分别是:"Id_P"、"LastName"、"FirstName"、"Address" 以及 "City": CREATE TABLE Persons ( Id_P int, LastName varchar(255), FirstName varchar(255), Address varchar(255), City varchar(255) )

NULL

如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。
NULL 值的处理方式与其他值不同。
NULL 用作未知的或不适用的值的占位符。

# 我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢? SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL # 我们如何选取在 "Address" 列中不带有 NULL 值的记录呢? SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL

SQL function

SELECT function(列) FROM 表

FIRST() 函数返回指定的字段中第一个记录的值。
提示:可使用 ORDER BY 语句对记录进行排序。

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

还有Max, min, sum

Group by

我理解下来就是最后, 展现的是多行分组情况,没有group by就是返回一个数据

Having

在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name HAVING aggregate_function(column_name) operator value

现在我们希望查找客户 “Bush” 或 “Adams” 拥有超过 1500 的订单总金额。
我们在 SQL 语句中增加了一个普通的 WHERE 子句:

SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500

CASE

判断,如果gender为'男'或'女',分别设置1,最后统计每个年龄段男女人数 select age, sum(case gender when '男' then 1 else 0 end) male_count, sum(case gender when '女' then 1 else 0 end) female_count from student group by age;

IF

以下代码等价于上面的case when select age, sum(if(gender='男',1,0)) male_count, sum(if(gender='女',1,0)) female_count from student group by age;


    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/28147.html

    分享给朋友:

    “windows10 安装hive库 hivesql安装” 的相关文章

    如何找到便宜域名?免费与低价域名注册全攻略

    知名免费二级域名介绍 在寻找免费域名时,有几个知名的选项值得考虑。eu.org 是一个长期存在的免费二级域名,支持DNSSEC,适合部署在Vercel等平台上。不过,它在中国某些地区可能会遇到访问限制,且申请时间不确定。US.KG 是另一个热门选择,可以接入Cloudflare,但需要有一个活跃的G...

    全面了解IP检查的重要性与实用工具

    IP 检查概述 在开始之前,先简单想象一下我在使用网络的日常生活。每当我访问一个网站或者下载文件时,我的设备背后其实都有一个IP地址在默默运作。这个看似简单的数字组合,不仅是我们在互联网世界里的“身份证”,同时也是进行各种网络交互的基础。 什么是 IP 检查 IP检查,简单来说,就是对IP地址的分析...

    域名连通性指南:如何有效测试和解决问题

    在我们日常使用互联网的时候,可能听到过“域名连通性”这个词,但它到底指的是什么呢?简单来说,域名连通性就是指当我们在浏览器中输入一个域名(比如www.example.com)时,能否顺利连接到对应的服务器。一旦这个连通性出现问题,那么我们就无法访问网站,可能会遇到各种烦人的错误提示。 域名连通性的重...

    RackNerd 更换 IP 地址的完整指南

    在使用 RackNerd 的服务时,了解什么是 IP 地址显得尤为重要。简单来说,IP 地址是计算机在网络上的“身份标识”。每个连接到互联网的设备都有一个唯一的 IP 地址,它帮助数据在网络中流动,确保信息能够准确地到达目的地。我们可以把 IP 地址想象成一个家庭地址,当信息包通过网络发送时,它就会...

    腾讯云618促销活动:如何以优惠价格体验云服务的优势

    在如今的数字化时代,云服务已成为各类企业和个人开发、运营的重要基础设施。腾讯云618促销活动正是针对这一需求而设计的,旨在帮助用户以更优惠的价格获取高质量的云服务。这一活动的背景与意义不仅仅体现在促销数字和用户数上,更在于它为用户在云计算的海洋中提供了一条便捷的航道。 618作为中国电商的购物盛宴,...

    如何进行IP测速提升网络连接体验

    我最近常常听到“IP测速”这个词。对我来说,这个概念最初听起来有些神秘。简单来说,IP测速是用来评估在特定的网络环境中,我们的互联网连接速度和性能的一种方法。它通过测量数据在网络上传输的时间和效率,给我们一个关于网络质量的参考。 在进行IP测速时,测试的主要内容包括下载速度、上传速度和延迟。下载速度...