将数据导入Hive数据库中,使用python链接Hive读取数据库,转化成pandas的dataframe

2023-11-20

  

   做互联网应用开发过程中,时常需要面对海量的数据存储及计算,传统的服务器已经很难再满足一些运算需求,基于hadoop/spark的大数据处理平台得到广泛的应用。本文提供一个导入数据到hive,用python读取hive数据库的例子。这实际是个比较简单的操作,但是还是存在很多坑。

 

1.首先第一步

需要将Mysql或者其他数据库的文件导出成CSV文件格式。当然如果你做爬虫,可以直接存到hive里面。这一步可以用图形化工具完成。

 

2.将csv文件导入到hive中。注意csv文件的不需要列名。

操作如下:

a. 命令行下进入hive交互式环境 

b.进入你需要存储的数据库中,建立一个空表(例表:test):*注意所建表的列数需要与原csv文件对齐。

create table test(
a string,
b string,
c string
)
row format serde
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with
SERDEPROPERTIES
("separatorChar"=",","quotechar"="\"")
STORED AS TEXTFILE;

 c.将csv文件导入到hive数据库中          

local为本地数据,如果存储在hdfs中,可以提供hdfs的url

load data local inpath '/home/XXXX/DATA.csv' into table test;

 

参考网站:https://blog.csdn.net/qq_29863961/article/details/80291509

 

3. 使用python链接Hive

 

1.介绍使用pyhive模块来实现python对hive的链接读取。安装pyhive会遇到很多坑,请按一下步骤来安装:

sudo apt-get install sasl2-bin
sudo apt-get install libsasl2-dev
pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
pip install pyhive


2.需要介绍下的是:

pip install sasl

这个库参考资料:

https://serverfault.com/questions/644998/cyrus-sasl-2-1-26-on-ubuntu-12-04
http://askubuntu.com/questions/131580/how-do-i-install-cyrus-sasl-on-10-04-server

安装这个库,会遇到很多报错。按照第一小节中的顺序可以直接安装。

3.使用pyhive链接hive

from pyhive import hive
import pandas as pd
def LinkHive(sql_select):
    connection = hive.Connection(host='localhost')
    cur = connection.cursor()      
    cur.execute(sql_select)
    columns = [col[0] for col in cursor.description]
    result = [dict(zip(columns, row)) for row in cursor.fetchall()]
    Main = pd.DataFrame(result)
    Main.columns = columns 
    return Main

sql = "select * from 数据库.表名"
df  = LinkHive(sql)

4.运行方法

 

a.需要启动hadoop所有服务。在ubuntu下敲下面命令。

1. cd /usr/local/hadoop/sbin  hadoop的安装路径 
2. ./start-all.sh             password是hadoop配置的密码
3. hiveserver2                启动hive连接服务,启动后不要关闭终端

b.在文件根目录下 打开终端 使用 python3  XXXXX.py 启动程序。

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据导入Hive数据库中,使用python链接Hive读取数据库,转化成pandas的dataframe 的相关文章

随机推荐

  • Signature verification failed on downloaded file

    下载文件上签名验证失败 原因 为了验证文件下载过程中是否出现丢包或其他原因导致文件出现损坏 会对比前后的hash码 不一致就会报错 Hash码 基于文件的内容通过算法得到的数值 与文件的名称无关 根据文件内容计算
  • STM32F103C8移植uCOSIII(HAL库)

    少年 一 随笔 二 uCOSIII源码 三 项目导入文件整理 四 导入文件和增加头函数路径 五 代码改动 六 参考资料 一 随笔 移植一个嵌入式系统用了一天时间 只能说不愧是我 在不了解的情况下还是少一些自己的操作 自己挖坑埋自己 记录一下
  • JavaEE项目实战(OA系统)之十九_流程审批之二

    JavaEE项目实战 OA系统 之十九 流程审批之二 这部分的程序界面原型如下 1 请假页面 员工如需请假 在登录系统后 点击请假功能 填写各项数据后 提交审批 也可以暂时不提交 将内容保存为草稿 以后可以加入功能 查看我的请假 和 草稿箱
  • 【Linux】Linux中jar包的压缩和解压缩

    1 概述 问题 在生产环境 有时会有需要修改jar中url的需求 目前我遇到的 此时 unzip tar命令都失去了用武之地 解决办法 假如文件 是file jar ls l xx xxx xx flink lang jar xx xxx
  • 端口访问被拒绝的解决方案

    端口访问被拒绝的解决方案 ps 本人亲测 阿里云2核4G5M的服务器性价比很高 新用户一块多一天 老用户三块多一天 最高可以买三年 感兴趣的可以戳一下 阿里云折扣服务器 问题描述 比如在本机telent到192 168 8 170 主机的9
  • 02Linux下C语言锁的学习之Linux下的读写锁

    02Linux下C语言锁的学习之Linux下的读写锁 概述 下面的锁的意思均是代表读写锁 读写锁的特性 1 若一把锁被一个线程以读方式锁住 当其它线程以读方式上锁的话 那么可以上锁成功 2 若一把锁被一个线程以写方式锁住 当其它线程以读或者
  • JavaScript HSL拾色器

    HSL 和 HSV 在数学上定义为在 RGB 空间中的颜色的 R G 和 B 的坐标的变换 从 RGB 到 HSL 或 HSV 的转换 设 r g b 分别是一个颜色的红 绿和蓝坐标 它们的值是在 0 到 1 之间的实数 设 max 等价于
  • 快慢指针解决 LeetCode 数组移除元素

    题面 移除元素 给你一个数组 nums 和一个值 val 你需要 原地 移除所有数值等于 val 的元素 并返回移除后数组的新长度 不要使用额外的数组空间 你必须仅使用 O 1 额外空间并 原地 修改输入数组 元素的顺序可以改变 你不需要考
  • SAP WM LT21界面里源发仓位以及目的地仓位的显示

    SAP WM LT21界面里源发仓位以及目的地仓位的显示 SAP WM模块中事务代码LT21用于显示转储单 TO单 在这个界面里 在TO单号码下方的位置 看起来像是HEADER的位置 会显示source storage bin destin
  • PCB设计笔记

    系列文章目录 1 元件基础 2 电路设计 3 PCB设计 4 元件焊接 5 板子调试 6 程序设计 7 算法学习 8 编写exe 9 检测标准 10 项目举例 11 职业规划 文章目录 前言 一 PCB板上的 地 1 详解电路设计中单点接地
  • FBX导入Unity中模型没有材质的处理

    一 3dMax导出FBX时的注意事项 导出时 确保maps文件存在 里面放着fbx用到的image 二 在Unity中的设置 1 文件拖入Unity的Assets文件夹中 2 查看模型的材质是否存在 如下所示 材质为None 此时拖入sce
  • 11-9 复制一个文件(方法三)

    1 利用 fread 和 fwrite 函数进行文件复制 方法一 利用读写一个字符的函数进行文件复制 速度较慢 但是适用于文本和二进制文件 方法二 利用读写一行字符的函数进行文件复制 速度较快 但仅适用于文本文件 使用 fread 和 fw
  • css3属性将单词换行并添加中划线(连字符)

    1 HTML页面 必须为英文语言 2 CSS页面 product desc width 520px max height 160px overflow hidden hyphens auto 效果 这样就把单词performance换行并添
  • [LINUX]虚拟机LinuxUbuntu上对.tarxz和.zip解压

    在虚拟机中的Linux Ubuntu系统上 你可以使用以下命令来解压 tar xz 和 zip 压缩包 1 解压 tar xz 压缩包 使用 tar 命令来解压 tar xz 压缩包 命令的格式是 tar xJf 压缩包文件名 tar xz
  • elasticsearch-head chrome 插件安装

    前言 由于不能直接访问谷歌商店下载插件 但可以直接在 Github 下载 地址 https github com mobz elasticsearch head raw master crx es head crx 如果觉得慢 可在此下载
  • SAS安装错误

    SAS安装 SAS安装分为两个阶段 系统要求 安装 第1阶段 Stage1 系统要求 System Requirement 需确保安装Microsoft Office Access Database Engine Microsoft Run
  • 定位shadow

    1 先定位到 shadow root 的宿主节点 此处为 id box 的 div 2 切换到 shadow root 中 3 然后再选择 shadow root 下的 span 标签 import time from selenium i
  • 2022亚太数学杯数学建模竞赛C题(思路、程序......)

    目录 一 英文题目及数据 二 中文翻译题目参考 2 1 题目 2 2 题目 三 思路 程序参考 四 参考文献 一 英文题目及数据 Canada s 49 6 C has set a new temperature record for re
  • 前端高频面试题 js中堆和栈的区别和浏览器的垃圾回收机制

    一 栈 stack 和 堆 heap 栈 stack 是栈内存的简称 栈是自动分配相对固定大小的内存空间 并由系统自动释放 栈数据结构遵循FILO first in last out 先进后出的原则 较为经典的就是乒乓球盒结构 先放进去的乒
  • 将数据导入Hive数据库中,使用python链接Hive读取数据库,转化成pandas的dataframe

    做互联网应用开发过程中 时常需要面对海量的数据存储及计算 传统的服务器已经很难再满足一些运算需求 基于hadoop spark的大数据处理平台得到广泛的应用 本文提供一个导入数据到hive 用python读取hive数据库的例子 这实际是个