hive调优实战系列文章-hive数据准备

本文主要讲解利用python 生成hive数据,主要包括python数据生成,数据上传hdfs,hive建库建表,hive导入数据,hive验证数据的正确性。

hive建库建表

hive调优实战系列文章使用学生信息表和选课表来作为数据支撑,下面是这两张表的建表语句。

create database test;

create table if not exists student_txt(
`no` string comment '学号',
`name` string comment '姓名',
`birth` string comment '生日',
`age` string comment '年龄',
`sex` string comment '性别')
row format delimited
fields terminated by '\t';


create table if not exists course_txt(
`no` string comment '学号',
`course` string comment '课程名',
`stats_dt` string comment '操作时间'
)
row format delimited
fields terminated by '\t';

python数据生成

我们通过一下代码生成测试数据:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File : init_hive_data.py    
@Description : None
@Version : 1.0
@Modify Time : 2020/6/17 21:40
"""
import hashlib
import random
import string
import time
import uuid
import sys
reload(sys)
sys.setdefaultencoding('utf-8')


def gen_uuid():
    return str(uuid.uuid1())


def random_date(year1=1992, year2=2000):
    a1 = (year1, 1, 1, 0, 0, 0, 0, 0, 0)
    a2 = (year2, 12, 31, 23, 59, 59, 0, 0, 0)

    start = time.mktime(a1)
    end = time.mktime(a2)

    t = random.randint(start, end)
    date_tuple = time.localtime(t)
    date = time.strftime("%Y-%m-%d", date_tuple)
    return date


def random_int():
    a = [1, 2, 3, 4, 5, 6, 8, 10, 12]
    if a[random.randint(1, 7)] % 2 == 0:
        return random.randint(60, 100)
    else:
        return random.randint(0, 60)


def random_course():
    return random.sample([u'数学', u'数学', u'数学', u'数学', u'数学', u'语文', u'英语', u'化学', u'物理', u'生物'],
                         random.randint(1, 5))


last_name_list = [u"李", u"王", u"张", u"刘", u"陈", u"杨", u"赵", u"黄", u"周", u"吴", u"徐", u"孙", u"胡", u"朱",
                  u"高", u"林", u"何", u"郭", u"马", u"罗", u"梁", u"宋", u"郑", u"谢", u"韩", u"唐", u"冯", u"于",
                  u"董", u"萧", u"程", u"曹", u"袁", u"邓", u"许", u"傅", u"沈", u"曾", u"彭", u"吕", u"苏", u"卢",
                  u"蒋", u"蔡", u"贾", u"丁", u"魏", u"薛", u"叶", u"阎", u"余", u"潘", u"杜", u"戴", u"夏", u"钟",
                  u"汪", u"田", u"任", u"姜", u"范", u"方", u"石", u"姚", u"谭", u"廖", u"邹", u"熊", u"金", u"陆",
                  u"郝", u"孔", u"白", u"崔", u"康", u"毛", u"邱", u"秦", u"江", u"史", u"顾", u"侯", u"邵", u"孟",
                  u"龙", u"万", u"段", u"漕", u"钱", u"汤", u"尹", u"黎", u"易", u"常", u"武", u"乔", u"贺", u"赖",
                  u"龚", u"文"]

first_name_list = [u'的', u'一', u'是', u'了', u'我', u'不', u'人', u'在', u'他', u'有', u'这', u'个', u'上', u'们', u'来', u'到', u'时',
                   u'大', u'地', u'为',
                   u'子', u'中', u'你', u'说', u'生', u'国', u'年', u'着', u'就', u'那', u'和', u'要', u'她', u'出', u'也', u'得', u'里',
                   u'后', u'自', u'以',
                   u'会', u'家', u'可', u'下', u'而', u'过', u'天', u'去', u'能', u'对', u'小', u'多', u'然', u'于', u'心', u'学', u'么',
                   u'之', u'都', u'好',
                   u'看', u'起', u'发', u'当', u'没', u'成', u'只', u'如', u'事', u'把', u'还', u'用', u'第', u'样', u'道', u'想', u'作',
                   u'种', u'开', u'美',
                   u'总', u'从', u'无', u'情', u'己', u'面', u'最', u'女', u'但', u'现', u'前', u'些', u'所', u'同', u'日', u'手', u'又',
                   u'行', u'意', u'动',
                   u'方', u'期', u'它', u'头', u'经', u'长', u'儿', u'回', u'位', u'分', u'爱', u'老', u'因', u'很', u'给', u'名', u'法',
                   u'间', u'斯', u'知',
                   u'世', u'什', u'两', u'次', u'使', u'身', u'者', u'被', u'高', u'已', u'亲', u'其', u'进', u'此', u'话', u'常', u'与',
                   u'活', u'正', u'感',
                   u'见', u'明', u'问', u'力', u'理', u'尔', u'点', u'文', u'几', u'定', u'本', u'公', u'特', u'做', u'外', u'孩', u'相',
                   u'西', u'果', u'走',
                   u'将', u'月', u'十', u'实', u'向', u'声', u'车', u'全', u'信', u'重', u'三', u'机', u'工', u'物', u'气', u'每', u'并',
                   u'别', u'真', u'打',
                   u'太', u'新', u'比', u'才', u'便', u'夫', u'再', u'书', u'部', u'水', u'像', u'眼', u'等', u'体', u'却', u'加', u'电',
                   u'主', u'界', u'门',
                   u'利', u'海', u'受', u'听', u'表', u'德', u'少', u'克', u'代', u'员', u'许', u'稜', u'先', u'口', u'由', u'死', u'安',
                   u'写', u'性', u'马',
                   u'光', u'白', u'或', u'住', u'难', u'望', u'教', u'命', u'花', u'结', u'乐', u'色', u'更', u'拉', u'东', u'神', u'记',
                   u'处', u'让', u'母',
                   u'父', u'应', u'直', u'字', u'场', u'平', u'报', u'友', u'关', u'放', u'至', u'张', u'认', u'接', u'告', u'入', u'笑',
                   u'内', u'英', u'军',
                   u'候', u'民', u'岁', u'往', u'何', u'度', u'山', u'觉', u'路', u'带', u'万', u'男', u'边', u'风', u'解', u'叫', u'任',
                   u'金', u'快', u'原',
                   u'吃', u'妈', u'变', u'通', u'师', u'立', u'象', u'数', u'四', u'失', u'满', u'战', u'远', u'格', u'士', u'音', u'轻',
                   u'目', u'条', u'呢',
                   u'病', u'始', u'达', u'深', u'完', u'今', u'提', u'求', u'清', u'王', u'化', u'空', u'业', u'思', u'切', u'怎', u'非',
                   u'找', u'片', u'罗',
                   u'钱', u'紶', u'吗', u'语', u'元', u'喜', u'曾', u'离', u'飞', u'科', u'言', u'干', u'流', u'欢', u'约', u'各', u'即',
                   u'指', u'合', u'反',
                   u'题', u'必', u'该', u'论', u'交', u'终', u'林', u'请', u'医', u'晚', u'制', u'球', u'决', u'窢', u'传', u'画', u'保',
                   u'读', u'运', u'及',
                   u'则', u'房', u'早', u'院', u'量', u'苦', u'火', u'布', u'品', u'近', u'坐', u'产', u'答', u'星', u'精', u'视', u'五',
                   u'连', u'司', u'巴',
                   u'奇', u'管', u'类', u'未', u'朋', u'且', u'婚', u'台', u'夜', u'青', u'北', u'队', u'久', u'乎', u'越', u'观', u'落',
                   u'尽', u'形', u'影',
                   u'红', u'爸', u'百', u'令', u'周', u'吧', u'识', u'步', u'希', u'亚', u'术', u'留', u'市', u'半', u'热', u'送', u'兴',
                   u'造', u'谈', u'容',
                   u'极', u'随', u'演', u'收', u'首', u'根', u'讲', u'整', u'式', u'取', u'照', u'办', u'强', u'石', u'古', u'华', u'諣',
                   u'拿', u'计', u'您',
                   u'装', u'似', u'足', u'双', u'妻', u'尼', u'转', u'诉', u'米', u'称', u'丽', u'客', u'南', u'领', u'节', u'衣', u'站',
                   u'黑', u'刻', u'统',
                   u'断', u'福', u'城', u'故', u'历', u'惊', u'脸', u'选', u'包', u'紧', u'争', u'另', u'建', u'维', u'绝', u'树', u'系',
                   u'伤', u'示', u'愿',
                   u'持', u'千', u'史', u'谁', u'准', u'联', u'妇', u'纪', u'基', u'买', u'志', u'静', u'阿', u'诗', u'独', u'复', u'痛',
                   u'消', u'社', u'算',
                   u'义', u'竟', u'确', u'酒', u'需', u'单', u'治', u'卡', u'幸', u'兰', u'念', u'举', u'仅', u'钟', u'怕', u'共', u'毛',
                   u'句', u'息', u'功',
                   u'官', u'待', u'究', u'跟', u'穿', u'室', u'易', u'游', u'程', u'号', u'居', u'考', u'突', u'皮', u'哪', u'费', u'倒',
                   u'价', u'图', u'具',
                   u'刚', u'脑', u'永', u'歌', u'响', u'商', u'礼', u'细', u'专', u'黄', u'块', u'脚', u'味', u'灵', u'改', u'据', u'般',
                   u'破', u'引', u'食',
                   u'仍', u'存', u'众', u'注', u'笔', u'甚', u'某', u'沉', u'血', u'备', u'习', u'校', u'默', u'务', u'土', u'微', u'娘',
                   u'须', u'试', u'怀',
                   u'料', u'调', u'广', u'蜖', u'苏', u'显', u'赛', u'查', u'密', u'议', u'底', u'列', u'富', u'梦', u'错', u'座', u'参',
                   u'八', u'除', u'跑',
                   u'亮', u'假', u'印', u'设', u'线', u'温', u'虽', u'掉', u'京', u'初', u'养', u'香', u'停', u'际', u'致', u'阳', u'纸',
                   u'李', u'纳', u'验',
                   u'助', u'激', u'够', u'严', u'证', u'帝', u'饭', u'忘', u'趣', u'支', u'春', u'集', u'丈', u'木', u'研', u'班', u'普',
                   u'导', u'顿', u'睡',
                   u'展', u'跳', u'获', u'艺', u'六', u'波', u'察', u'群', u'皇', u'段', u'急', u'庭', u'创', u'区', u'奥', u'器', u'谢',
                   u'弟', u'店', u'否',
                   u'害', u'草', u'排', u'背', u'止', u'组', u'州', u'朝', u'封', u'睛', u'板', u'角', u'况', u'曲', u'馆', u'育', u'忙',
                   u'质', u'河', u'续',
                   u'哥', u'呼', u'若', u'推', u'境', u'遇', u'雨', u'标', u'姐', u'充', u'围', u'案', u'伦', u'护', u'冷', u'警', u'贝',
                   u'著', u'雪', u'索',
                   u'剧', u'啊', u'船', u'险', u'烟', u'依', u'斗', u'值', u'帮', u'汉', u'慢', u'佛', u'肯', u'闻', u'唱', u'沙', u'局',
                   u'伯', u'族', u'低',
                   u'玩', u'资', u'屋', u'击', u'速', u'顾', u'泪', u'洲', u'团', u'圣', u'旁', u'堂', u'兵', u'七', u'露', u'园', u'牛',
                   u'哭', u'旅', u'街',
                   u'劳', u'型', u'烈', u'姑', u'陈', u'莫', u'鱼', u'异', u'抱', u'宝', u'权', u'鲁', u'简', u'态', u'级', u'票', u'怪',
                   u'寻', u'杀', u'律',
                   u'胜', u'份', u'汽', u'右', u'洋', u'范', u'床', u'舞', u'秘', u'午', u'登', u'楼', u'贵', u'吸', u'责', u'例', u'追',
                   u'较', u'职', u'属',
                   u'渐', u'左', u'录', u'丝', u'牙', u'党', u'继', u'托', u'赶', u'章', u'智', u'冲', u'叶', u'胡', u'吉', u'卖', u'坚',
                   u'喝', u'肉', u'遗',
                   u'救', u'修', u'松', u'临', u'藏', u'担', u'戏', u'善', u'卫', u'药', u'悲', u'敢', u'靠', u'伊', u'村', u'戴', u'词',
                   u'森', u'耳', u'差',
                   u'短', u'祖', u'云', u'规', u'窗', u'散', u'迷', u'油', u'旧', u'适', u'乡', u'架', u'恩', u'投', u'弹', u'铁', u'博',
                   u'雷', u'府', u'压',
                   u'超', u'负', u'勒', u'杂', u'醒', u'洗', u'采', u'毫', u'嘴', u'毕', u'九', u'冰', u'既', u'状', u'乱', u'景', u'席',
                   u'珍', u'童', u'顶',
                   u'派', u'素', u'脱', u'农', u'疑', u'练', u'野', u'按', u'犯', u'拍', u'征', u'坏', u'骨', u'余', u'承', u'置', u'臓',
                   u'彩', u'灯', u'巨',
                   u'琴', u'免', u'环', u'姆', u'暗', u'换', u'技', u'翻', u'束', u'增', u'忍', u'餐', u'洛', u'塞', u'缺', u'忆', u'判',
                   u'欧', u'层', u'付',
                   u'阵', u'玛', u'批', u'岛', u'项', u'狗', u'休', u'懂', u'武', u'革', u'良', u'恶', u'恋', u'委', u'拥', u'娜', u'妙',
                   u'探', u'呀', u'营',
                   u'退', u'摇', u'弄', u'桌', u'熟', u'诺', u'宣', u'银', u'势', u'奖', u'宫', u'忽', u'套', u'康', u'供', u'优', u'课',
                   u'鸟', u'喊', u'降',
                   u'夏', u'困', u'刘', u'罪', u'亡', u'鞋', u'健', u'模', u'败', u'伴', u'守', u'挥', u'鲜', u'财', u'孤', u'枪', u'禁',
                   u'恐', u'伙', u'杰',
                   u'迹', u'妹', u'藸', u'遍', u'盖', u'副', u'坦', u'牌', u'江', u'顺', u'秋', u'萨', u'菜', u'划', u'授', u'归', u'浪',
                   u'听', u'凡', u'预',
                   u'奶', u'雄', u'升', u'碃', u'编', u'典', u'袋', u'莱', u'含', u'盛', u'济', u'蒙', u'棋', u'端', u'腿', u'招', u'释',
                   u'介', u'烧', u'误',
                   u'乾', u'坤']


def random_last_name():
    return random.sample(last_name_list, 1)[0]


def random_first_name():
    return random.sample(first_name_list, 1)[0] + random.sample(first_name_list, 1)[0]


def random_sex():
    return random.sample([u'男', u'女'], 1)[0]


if __name__ == '__main__':
    for j in xrange(100):
        student_fp = open('./student/' + 'student' + str(j) + '.txt', mode='wr+')
        course_fp = open('./course/' + 'course' + str(j) + '.txt', mode='wr+')
        print j
        for i in xrange(100000):
            no = gen_id()
            last_name = random_last_name()
            first_name = random_first_name()
            name = last_name + first_name
            birth = random_date()
            age = 2020 - int(birth.split('-')[0])
            sex = random_sex()
            student_line = "{0}\t{1}\t{2}\t{3}\t{4}\n".format(no, name, birth, str(age), str(sex))
            student_fp.write(student_line)

            course_set = set(random_course())
            for course in course_set:
                score = random_int()
                stats_dt = random_date(year1=2019, year2=2020)
                course_line = "{0}\t{1}\t{2}\t{3}\n".format(no, course, score, stats_dt)
                course_fp.write(course_line)
        student_fp.flush()
        student_fp.close()
        course_fp.flush()
        course_fp.close()

数据上传hdfs

用hdfs 命令将数据上传hdfs:

hdfs dfs -put student/ /tmp/hongsuo_liu/data/
hdfs dfs -put course/ /tmp/hongsuo_liu/data/

hive导入数据

LOAD DATA INPATH "/tmp/hongsuo_liu/data/student/" INTO TABLE student_txt; 
LOAD DATA INPATH "/tmp/hongsuo_liu/data/course/" INTO TABLE course_txt; 

hive数据验证

student_txt数据截图

course_txt数据截图

course_txt数据量.png
student_txt表数据量.png

至此我们的数据已全部准备完成。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342