首页 > 其他分享 >2023.8.14-2023.8.20暑假第六周博客

2023.8.14-2023.8.20暑假第六周博客

时间:2023-08-19 09:22:05浏览次数:39  
标签:20 14 get text hive 2023.8 数据 col

2023.8.14

单独看一下外部表

外部表从概念是被认为并非hive拥有的表,只是临时关联数据去使用,创建外部表也很简单,基于外币表的特性,外部表和数据的相互独立的

可以先有表,然后把数据移动到指定的路径下

也可以是现有数据,然后创建表通过location(路径)指向数据

内部表和外部表可以相互转换

转换
• 内部表转外部表
alter table stu set tblproperties('EXTERNAL'='TRUE');
• 外部表转内部表
alter table stu set tblproperties('EXTERNAL'='FALSE');
通过 stu set tblproperties 来修改属性
要注意: ('EXTERNAL'='FALSE') 或 ('EXTERNAL'='TRUE') 为固定写法,区分大小写!!! 2023.8.15 今天主要学习了数据的加载,分为几种方式 1 LOAD语法

 是从hdfs文件管理系统中加载数据

也可以从其他表中加载数据

语法:
INSERT [OVERWRITE | INTO] TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT
EXISTS]] select_statement1 FROM from_statement;
将 SELECT 查询语句的结果插入到其它表中,被 SELECT 查询的表可以是内部表或外部表。
示例:
INSERT INTO TABLE tbl1 SELECT * FROM tbl2;
INSERT OVERWRITE TABLE tbl1 SELECT * FROM tbl2;  
数据加载 - 两种语法的选择
对于数据加载,我们学习了: LOAD 和 INSERT SELECT 的方式,那么如何选择它们使用呢?
• 数据在本地
• 推荐 load data local 加载
• 数据在 HDFS
• 如果不保留原始文件: 推荐使用 LOAD 方式直接加载
• 如果保留原始文件: 推荐使用外部表先关联数据,然后通过 INSERT SELECT 外部表的形式加载数据
• 数据已经在表中
• 只可以 INSERT SELECT   hive 表数据导出 - insert overwrite 方式
将 hive 表中的数据导出到其他任意目录,例如 linux 本地磁盘,例如 hdfs ,例如 mysql 等等
语法: insert overwrite [local] directory ‘path’ select_statement1 FROM from_statement;
• 将查询的结果导出到本地 - 使用默认列分隔符
• 将查询的结果导出到本地 - 指定列分隔符
• 将查询的结果导出到 HDFS 上 ( 不带 local 关键字 )
insert overwrite local directory '/home/hadoop/export1' select * from test_load ;
insert overwrite local directory '/home/hadoop/export2' row format delimited fields terminated by '\t'
select * from test_load;
insert overwrite directory '/tmp/export' row format delimited fields terminated by '\t' select * from
test_load;   hive 表数据导出 - hive shell
• 基本语法:( hive -f/-e 执行语句或者脚本 > file )
bin/hive -e "select * from myhive.test_load;" > /home/hadoop/export3/export4.txt
bin/hive -f export.sql > /home/hadoop/export4/ex 2023.8.16 今天主要了解了一下大数据开发的流程 主要是爬取数据+清洗,爬取数据是用的python编写的爬虫,爬取完成之后还需要对数据进行一个预处理 预处理主要是通过分隔符把对应的内容分隔开 之后需要把内容上传到hive数据库,通过hive中的sql语句对数据进行清洗,清洗完成之后可以输出  2023.8.17 今天做了一下北京市政,具体流程会在明天的博客中写明,以下放一张FineBI实现的图片说明自己已经完成了

 

 2023.8.18 今天主要先说一下流程,首先是 用python爬取数据,爬取之后存到本地的txt文件中,爬取下来的文件有些很标准有些很混乱,需要进行清洗 用mapreduce进行数据的清洗,有些数据比较标准,直接用excel清洗即可,清洗完成之后需要做的是把预处理完的数据上传到hdfs,需要先 打开虚拟机,连接finalshell和Datagrip,在DataGrip中对hive进行操作,读取数据并实现分表,之后其实应该用echarts,这样加上spring boot 和web可以实现动态显示结果内容,但是我由于没有学过这几项技术,因此直接用了一个国产的软件finalBI,直接对数据库中的内容做了一个 可视化的展示,后续会学习spring和echarts的内容 2023.8.19 今天主要是放一下python的爬虫代码

import json
import requests
import demjson
from bs4 import BeautifulSoup
import jieba
import jieba.analyse as analyse
import csv

kv = {
'Host': 'www.beijing.gov.cn',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'text/json',
'X-Requested-With': 'XMLHttpRequest',
'Content-Length': '155',
'Origin': 'http://www.beijing.gov.cn',
'Connection': 'keep-alive',
'Referer': 'http://www.beijing.gov.cn/hudong/hdjl/'}
kv1 = {'user-agent': 'Mozilla/5.0'}

if __name__ == "__main__":
page=1
query = {
}
datas = json.dumps(query)

while page<175:
print(page)
url = "https://www.beijing.gov.cn/hudong/hdjl/sindex/bjah-index-hdjl!replyLetterListJson.action?page.pageNo="+str(page)+"&page.pageSize=6&orgtitleLength=26"
r = requests.post(url, data=datas, headers=kv)
rr = demjson.decode(r.text);
for item in rr["result"]:

originalId=item["originalId"]#编号
letterTypeName=item["letterTypeName"]#信件类型

#咨询
url1 = "http://www.beijing.gov.cn/hudong/hdjl/com.web.consult.consultDetail.flow?originalId="+originalId
#建议
url2 = "http://www.beijing.gov.cn/hudong/hdjl/com.web.suggest.suggesDetail.flow?originalId="+originalId

if letterTypeName=="咨询":
r1 = requests.get(url1, headers=kv1)
else:
r1 = requests.get(url2, headers=kv1)

demo = r1.text
soup = BeautifulSoup(demo, "html.parser")
title=soup.find("strong").get_text().replace("\n","")
fromPeople=soup.find_all("div", {"class": "col-xs-10 col-lg-3 col-sm-3 col-md-4 text-muted"})[0].get_text().lstrip('来信人:').lstrip().rstrip()
fromTime=soup.find_all("div", {"class": "col-xs-5 col-lg-3 col-sm-3 col-md-3 text-muted"})[0].get_text().lstrip('时间:')
problem=soup.find_all("div", {"class": "col-xs-12 col-md-12 column p-2 text-muted mx-2"})[0].get_text().lstrip().rstrip().replace("\r","").replace("\n","")
office=soup.find_all("div", {"class": "col-xs-9 col-sm-7 col-md-5 o-font4 my-2"})[0].get_text().replace("\n","")
answerTime=soup.find_all("div", {"class": "col-xs-12 col-sm-3 col-md-3 my-2"})[0].get_text().lstrip('答复时间:')
answer=soup.find_all("div", {"class": "col-xs-12 col-md-12 column p-4 text-muted my-3"})[0].get_text().lstrip().rstrip().replace("\n","").replace("\r","")

标签:20,14,get,text,hive,2023.8,数据,col
From: https://www.cnblogs.com/Arkiya/p/17624553.html

相关文章

  • P6429 [COCI2008-2009#1] JEZ 题解
    题目传送门:Click。某蒟蒻看见这道题,想了足足一个晚上,过后茅塞顿开,故作此篇。感谢神犇的题解。看题目数据范围:\(1\leqr,c\leq10^6,1\leqk\leq10^{12}\),显然打暴力\(\mathcal{O}(rc)\)的时间复杂度是行不通的。必须做到近似于\(mathcal{O}(r)\)的时间复杂度。观察题......
  • [NOI2014] 起床困难综合症
    [NOI2014]起床困难综合症洛谷题目描述\(21\)世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳。作为一名青春阳光好少年,atm一直坚持与起床困难综合症作斗争。通过研究相关文献,他找到了该病的发病原因:在深邃的太平洋海底中,出现了一条名为drd的......
  • SolidWorks2023(三维3D设计软件) SP2.1 中文永久使用
    SolidWorks2023是一款领先的三维计算机辅助设计(CAD)软件,由美国公司DassaultSystèmes开发。它提供了丰富的工具和功能,旨在帮助工程师和设计师创建高质量的产品设计,并简化设计流程和提高生产效率。点击获取SolidWorks2023 以下是对SolidWorks2023的详细介绍:设计工具:So......
  • 【愚公系列】2023年08月 WPF控件专题 Button控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 2022数据结构 错题
                                        5040  2的12次=4096, 2的13次=8192  当第一趟元素确认的位置为最左或最右时,第二趟排序只能确认一个位置......
  • 2023/08/18
    数值被颠倒。例如:输入123456则运行后654321importjava.util.Scanner;publicclassTest{publicstaticvoidmain(String[]args){System.out.print("请输入一个正整数:");Scannersc=newScanner(System.in);inta=......
  • 2023年 8月15日普及组南外集训题解
    A陷阱我们可以从\(l\)枚举到\(d\),再计算是否满足要求,满足要求加入到数组中,输出第一个和最后一个#include<iostream>usingnamespacestd;constintN=1e5+5;intk;intnums[N];intmain(){intl,d,x;cin>>l>>d>>x;for(inti=l;i<=d......
  • LeetCode 200.岛屿数量
    1.题目:给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。 示例1:输入:grid=[["1","1","1","1","0"],["1","1",&q......
  • 代码随想录算法训练营第六天|242.有效的字母异位词 349. 两个数组的交集 202. 快乐数
     哈希表部分:哈希表,简单来说就是k-v形式查询的结构,用来快速判断一个元素是否出现集合里,如hashmap核心是哈希函数,k存哈希函数的值,找的时候找查询项的哈希函数值就行,返回v 出现哈希碰撞的时候,查找的流程怎么走呢?(*存疑,之后查一下) 类型:数组+集合set(set、multiset、unordered......
  • 代码随想录算法训练营第三天| 203.移除链表元素 ,707.设计链表 ,206.反转链表
    203.移除链表元素题目给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。第一想法定义一个指针a指向头节点,顺序遍历链表,循环结束的条件是指针a.next为null删除操作是判断a.next.val=val时让a.next=a.next.nex......