hive表导入外部数据

这篇具有很好参考价值的文章主要介绍了hive表导入外部数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.数据生成

生成1亿条数据到文件data_gen_multi_proc_xxxx.txt中,cpu8核耗时4min左右

# -*- coding: utf-8 -*-
import datetime
import random
from multiprocessing import Pool, cpu_count


def generate_data(num):
    data = []
    for _ in range(num):
        line = ' '.join(str(random.randint(1, 9999)) for _ in range(5))
        data.append(line)
    return '\n'.join(data)


if __name__ == '__main__':
    startTime = datetime.datetime.now()
    # 要生成数据的总行数,此处为100万行
    num_lines = 100000000
    p = Pool(cpu_count())
    filename = 'data_gen_multi_proc_' + str(num_lines) + '.txt'
    with open(filename, 'w') as f:
        with Pool(processes=cpu_count()) as p:
            results = p.map(generate_data, [num_lines//cpu_count()] * cpu_count())
        f.write('\n'.join(results))

    endTime = datetime.datetime.now()
    print("multi_costTime: " + str(endTime - startTime))

2.数据上传至Hadoop

# 上传至Hadoop目录
./hadoop fs -put data_gen_multi_proc_xxxx.txt /path/to/data_gen

3.创建hive库表

3.1 hive库创建形式

CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
  [COMMENT database_comment]       //关于数据块的描述
  [LOCATION hdfs_path]          //指定数据库在HDFS上的存储位置
  [WITH DBPROPERTIES (property_name=property_value, ...)];    //指定数据块属性

3.2 库表创建

这里不细说具体格式,可以通过hive基础知识进行学习。

Hive基础学习_hive在线学习_程序员的人生K的博客-CSDN博客

Hive超详细介绍_hive中reducer什么意思_「已注销」的博客-CSDN博客

CREATE DATABASE IF NOT EXISTS test_hive_database;
USE test_hive_database;


# 以textfile来存储数据
CREATE TABLE `test_hive_table`(
  col1 INT,
  col2 INT,
  col3 INT,
  col4 INT,
  col5 INT
)
PARTITIONED BY (daytime STRING)
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ' '
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION
    'hadoop路径';

3.3 分区创建并加载数据

# 先新建分区
alter table test_hive_table add partition (daytime='2021-06-06');

# 在hive客户端执行下面脚本,将数据加载到test_hive_table表中
load data inpath '/path/to/data_gen/data_gen_multi_proc_xxxx.txt' into table test_hive_table partition (daytime='2021-06-06');

# 验证是否成功加载
select count(1) from test_hive_table;

*或者通过其他hive表进行insert ... select ...

# 在hive客户端执行下面脚本
insert into table test_hive_table partition (daytime='2021-06-06') select * from test_data;

# 验证是否成功加载
select count(1) from test_hive_table;

ok,到这里就结束了。文章来源地址https://www.toymoban.com/news/detail-560528.html

到了这里,关于hive表导入外部数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hadoop平台集群之间Hive表和分区的导出和导入迁移(脚本)

    你可以使用Hive的EXPORT和IMPORT命令结合Hadoop的DistCp命令。下面是一个示例脚本: 在脚本中,你需要根据实际情况修改以下参数: source_db.source_table:源Hive表的数据库和表名。 target_hdfs_location:导出数据的HDFS位置,用于暂时存储导出数据。 source_cluster和target_cluster:分别为源H

    2024年02月15日
    浏览(50)
  • 【大数据Hive】Hive 内部表与外部表使用详解

    目录 一、hive 内部表简介 1.1 查看内部表信息 二、hive 外部表简介

    2024年02月16日
    浏览(33)
  • 一百三十三、Hive——Hive外部表加载含有JSON格式字段的CSV文件数据

    在Hive的ODS层建外部表,然后加载HDFS中的CSV文件数据 注意 :CSV文件中含有未解析的JSON格式的字段数据,并且JSON字段中还有逗号 JSON数据的字段track_data只显示一部分数据,因为JSON格式数据里面也含有逗号 [{\\\"id\\\":\\\"14\\\",\\\"length\\\":5.0,\\\"height\\\":3.0,\\\"posX\\\":63.0,\\\"posY\\\":37.0,\\\"acs\\\":99.0,\\\"angle\\\":83.0,\\\"alti

    2024年02月16日
    浏览(48)
  • hive的数据导入

    1.1 向表中装载数据(Load) 1)语法 (1)load data:表示加载数据。 (2)local:表示从本地加载数据到Hive表;否则从HDFS加载数据到Hive表。 (3)inpath:表示加载数据的路径。 (4)overwrite:表示覆盖表中已有数据,否则表示追加。 (5)intotable:表示加载到哪张表。 (6)stu

    2024年02月13日
    浏览(38)
  • hive数据的导入导出

    Linux本地文件以及数据格式: 在hive中创建表: stored as常见的几种格式 1. TextFile:使用TextFile格式存储的表将数据以文本文件的形式进行存储。这是最常用的默认存储格式。 2. SequenceFile:使用SequenceFile格式存储的表将数据以键-值对的形式存储,适用于数据压缩和高效读取。

    2024年02月12日
    浏览(43)
  • Hive数据仓库---Hive的安装与配置

    Hive 官网地址:https://hive.apache.org/ 下载地址:http://www.apache.org/dyn/closer.cgi/hive/ 把安装文件apache-hive-3.1.2-bin.tar.gz上传到master节点的/opt/software目 录下,执行以下命令把安装文件解压到/opt/app目录中 进入/opt/app目录,为目录apache-hive-3.1.2-bin建立软件链接 即输入hive就相当于输入a

    2024年02月02日
    浏览(43)
  • 【大数据】Hive 中的批量数据导入

    在博客【大数据】Hive 表中插入多条数据 中,我简单介绍了几种向 Hive 表中插入数据的方法。然而更多的时候,我们并不是一条数据一条数据的插入,而是以批量导入的方式。在本文中,我将较为全面地介绍几种向 Hive 中批量导入数据的方法。 overwrite :表示覆盖表中已有数

    2024年02月11日
    浏览(41)
  • Hive数据仓库简介

    Hive起源于Facebook,Facebook公司有着大量的日志数据,而Hadoop是实现了MapReduce模式开源的分布式并行计算的框架,可轻松处理大规模数据。然而MapReduce程序对熟悉Java语言的工程师来说容易开发,但对于其他语言使用者则难度较大。因此Facebook开发团队想设计一种使用SQL语言对日

    2024年02月15日
    浏览(57)
  • hive数据仓库课后答案

    一、 填空题 1.数据仓库的目的是构建面向     分析         的集成化数据环境。 2.Hive是基于     Hadoop         的一个数据仓库工具。 3.数据仓库分为3层,即      源数据层        、     数据应用层        和数据仓库层。 4.数据仓库层可以细分为      明细层

    2023年04月08日
    浏览(47)
  • 数据仓库 & Apache Hive

    目录 一、数据分析 1、数据仓库 1.1、数仓专注分析 1.2、数仓主要特征 1.3、数据仓库主流开发语言--SQL 2、Apache Hive 2.1、为什么使用Hive? 2.2、Hive和Hadoop关系 2.3、Hive架构图、各组件功能 2.4、Hive安装部署 2.4.1、Hive概念介绍 2.4.2、安装前准备     数据仓库 (英语:Data Warehous

    2024年01月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包