首页 > 数据库 >python脚本 用sqoop把mysql数据导入hive

python脚本 用sqoop把mysql数据导入hive

时间:2023-06-06 19:35:48浏览次数:51  
标签:database python sqoop hive cursor -- mysql table


主要功能:用python把mysql数据库的数据导入到hive中,该过程主要是通过python语言操作sqoop.

#! /usr/bin/env python
# coding:utf-8
# --------------------------------
# Created by coco  on 16/2/23
# ---------------------------------
# Comment: 主要功能说明 :初始化业务数据库

import os
import pyhs2


conn=pyhs2.connect(host="192.168.8.94",port=10000,authMechanism="PLAIN",user="hdfs")
mysql_info={"host":"192.168.8.94","port":3306,"user":"root","passwd":"gc895316"}
print mysql_info
def run_hive_query(sql):
    with conn.cursor()  as cursor:
        cursor.execute(sql)
        return cursor.fetchall()
def mysql_to_hive(host,port,user,passwd,database,table):
    #os.system("hadoop fs -rm    -r /user/task/%s"%table)
    if [database] not in run_hive_query("show databases"):
        with conn.cursor() as cursor:
            cursor.execute("create database " +database)
    with conn.cursor() as cursor:
        cursor.execute("use  "+database)
    if [table] not in run_hive_query("show tables"):
        os.system("sqoop   import --connect   jdbc:mysql://%s:%s/%s --username  %s   --password  %s --table %s  --hive-database  %s  -m 10 --create-hive-table --hive-import   --hive-overwrite "%(
            host,port,database,user,passwd,table,database))
    else:
        os.system("sqoop   import --connect   jdbc:mysql://%s:%s/%s --username  %s   --password  %s --table %s  --hive-database  %s  -m 10 --hive-import   --hive-overwrite "%(
            host,port,database,user,passwd,table,database))


mysql_to_hive(mysql_info["host"],mysql_info["port"],mysql_info["user"],mysql_info["passwd"].replace("(","\("),"wwn","cm_vip")


标签:database,python,sqoop,hive,cursor,--,mysql,table
From: https://blog.51cto.com/u_16152230/6427031

相关文章

  • hive与hdfs整合过程
    hive与hdfs整合过程---coco#bycoco#2014-07-25hive的具体练习:(以下4个目标)1.第一普通的hdfs文件能导入到hive中,以供我们查询。2.第二hbase中的表,能导入hive中,以供我们查询。3.第三mysql中的表,能导入hive中,以供我们查询。4.hive中......
  • 【python】循环语句
    循环语句在python中,for...[if]...语句一种简洁的构建List的方法,从for给定的List中选择出满足if条件的元素组成新的List,其中if是可以省略的。例如,我想去除列表中所有的偶数项,保留奇数项,可以这么写:ak=[0,1,2,3,4,5,6,7]new_t=[xforxinak]print(new_t)new_t2=[xfo......
  • python爬取图片
    希望用python爬取京东手机图片,但是pdb调试发现期望用来保存匹配的图片的列表一直是空怀疑两个原因:获取到的要匹配关键字的html网页有问题正则表达式没写对将获取到的要匹配关键字的html的字符串写入txt,以utf-8解码,看看是否能查到浏览器打开html搜索到的关键字发现str(urll......
  • Python机器学习——识别不同鸟类
    (一)选题背景:鸟类是野生动物的重要组成部分,是自然界的一项重要资源动物,也是生态系统中的重要组成部分。鸟类是可更新的自然资源,它在商业、旅游、美学、文化、科学和生态上都有重要价值。国内近年来鸟类系统发育与分类、分布的研究不断取得新的成果,这些对于研究我国的鸟类分类区......
  • Python 练手小项目-名片管理
    需求描述需要写一段程序实现简单名片管理功能程序启动展示主界面新建名片显示全部查询名片退出系统主程序实现'''名片管理系统主程序'''importcards_toolswhileTrue:'''显示主界面'''cards_tools.show_menu()action=input('请选择操作功能:�......
  • python打包后,执行报错:NameError: name ‘exit‘ is not defined
    try:file_name=os.path.basename(src)file_size=os.stat(src).st_sizeexceptException:print("源文件不存在:",src)exit()在ide使用中没有问题,但是封装成应用程序时就出现问题: NameError:name'exit'isnotdef......
  • Python 中 yeild 的用法
    本文包含以下四部分:yeild介绍yeild案例简单的例子对比yeild和常规函数复杂的例子说明yeild与普通函数的差异1.yeild介绍yield是Python的一个关键字,用于从一个函数中返回一个生成器(generator)。生成器是一种特殊类型的迭代器,它允许你延迟计算结果,这在处理大数据或......
  • CentOS 6.9 python3.10 numpy 安装使用 - gcc 升级
    踩坑记录程序写好了,使用了pandas,放在服务器上,运行报错:Originalerrorwas:/lib64/libgcc_s.so.1:version`GCC_4.8.0'notfound(requiredby/usr/local/lib/python3.10/site-packages/numpy/core/../../numpy.libs/libgfortran-040039e1.so.5.0.0)可以看到是导入numpy......
  • Python Django Xadmin 的使用
    笔者Python版本为3.10.6,Django版本为4.2.2本项目代码已开源,可到GitHub仓库中查看本项目用到的xadmin、DjangoUeditor文件夹笔者已经按照Python3.10版本进行了修改,点击链接即可下载。但如果你使用的Python版本较低,可能会因此出现一些BUG,请到问题汇总查看,如果......
  • python切片详解
    索引的一般方式一个完整的切片是包含三个参数和两个冒号":",用于分隔三个参数(start_index、end_index、step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时,start_index=end_index,表示切取start_index指定的那个元素。切片操作的基本表达式:object[start......