前言:


机器学习平台开发初期,需要进行基于python的算法组件的开发(编写不同模型算法的python脚本,并以Azkaban调度的方式来运行模型)。

由于以前没有学过python,所以在最初的python环境搭建与数据库连接这一块,踩了不少的坑,在这里简单记录一下。(这是第一篇分享的公号,忘加原创,删了重新发的一版)

问题与方案:


  • 1.开发环境的搭建

如果你也是一个像我这样的python小白,那么你首先需要的是安装Anaconda与Pycharm,具体的安装配置,你可以参考:https://www.cnblogs.com/yuxuefeng/articles/9235431.html

  • 2.依赖包的安装

  • 连接mysql

由于我的Python版本是3.0的,所以需要安装pymysql,如果你的Python版本是2.0的,那你可能需要安装mysqldb。

 安装指令 pip install pymysql

毫无难度,demo会在文后给出。

  • 连接impala

python连接impala就要相对复杂很多了,翻遍了网上的参考,下面这篇文章最有价值:https://ask.hellobi.com/blog/ysfyb/18251

安装指令pip install sixpip install thrift_sasl==0.2.1 --no-deps(安装的时候必须完整的加上这条指令)pip install pure-saslpip install impala

在这个过程中,如果一切安装顺利,那么在运行代码的过程中,可能还会出现报错,如果是下面这个方法的地方报错,那你需要在对应的位置加上如下一行代码。

def _send_message():  header=struct.pack(">BI",status,len(body))....if(type(body) is str):        body = body.encode()

干货分享:


  • Python连接MySQL数据库demo

import pymysql  # 建立数据库连接 mysql_client = pymysql.Connect(     host='主机',     port=3306,     user='用户',     passwd='密码',     db='数据库',    charset='utf8')def gettabledata(table_name):    sscur = mysql_client.cursor(pymysql.cursors.SSCursor)    sscur.execute('select * from {}'.format(table_name))    res = sscur.fetchall()  # 获取结果    print(table_name)    print(res)    mysql_client.close()# 数据库连接和游标的关闭    sscur.close()    return restable_name='表名'gettabledata(table_name)
  • Python连接impala数据源demo

import geventimport timefrom impala.dbapi import connectfrom impala.util import as_pandas class MyImpala:    def __init__(self, host, port, user, password,auth_mechanism):        self.host = host         # impala主机地址        self.port = port          # impala端口        self.user = user  # impala远程连接用户名        self.password = password  # impala远程连接密码        self.auth_mechanism = auth_mechanism # impala远程连接密码        self.impala_connect()    # __init__初始化之后,执行的函数    def impala_connect(self):        self.conn = connect(host=self.host,                            port=self.port,                            user=self.user,                            password=self.password,                            auth_mechanism=self.auth_mechanism,                               )        # 连接impala后执行的函数        self.asynchronous()    def run(self, nmin, nmax):        # 创建游标        self.cur = self.conn.cursor()        # 定义sql语句,插入数据name,age,contace        sql = "insert into jy_tb.student(name,age,contace) values (%s,%s,%s)"        # 定义总插入行数为一个空列表        data_list = []        for i in range(nmin, nmax):        # 添加所有任务到总的任务列表            result = ('zhangsan' + str(i), 12, i)            data_list.append(result)        # 执行多行插入,executemany(sql语句,数据(需一个元组类型))        content = self.cur.executemany(sql, data_list)        if content:            print('成功插入第{}条数据'.format(nmax - 1))        # 提交数据,必须提交,不然数据不会保存        self.conn.commit()    def asynchronous(self):        # g_l 任务列表        # 定义了异步的函数: 这里用到了一个gevent.spawn方法        max_line = 10  # 定义每次最大插入行数(max_line=10,即一次插入10行)        g_l = [gevent.spawn(self.run, i, i+max_line) for i in range(1, 11, max_line)]        # gevent.joinall 等待所以操作都执行完毕        gevent.joinall(g_l)        self.cur.close()  # 关闭游标        self.conn.close()  # 关闭impala连接if __name__ == '__main__':    start_time = time.time()  # 计算程序开始时间    st = MyImpala('主机', 21050, 'yarn', '密码', 'PLAIN')  # 实例化类,传入必要参数    print('程序耗时{:.2f}'.format(time.time() - start_time))  # 计算程序总耗时

总结:


瓶子注定是孤独的,骚年好好撸代码吧~⛽️⛽️⛽️

python连接mysql_Python 连接mysql与impala相关推荐

  1. python 连接mysql_Python 连接MySQL

    数据库技术(例如MySQL)在气象业务和其他商业行业中都有着广泛的应用,气象与电网结合的大项目甚至都用上了hadoop分布式存储,Hadoop中的Hive组件和数据库在语法上高度相似. 传统运行mys ...

  2. python操作mysql_python操作MySQL

    python操作MySQL.执行SQL语句.获取结果集.遍历结果集.取得谋个字段.获取表字段名.将图片插入数据库.执行事务等各种代码示例和详细介绍,代码居多. 实例一: 取得MySQL的版本 在win ...

  3. python连接mysql_Python连接MySQL

    1.MySQL配置 1)MySQL下载地址:MySQL Community Server 8.0.15 下载 2)MySQL安装:MySQL安装 MySQL安装与使用 3)修改初始密码 使用以下命令登 ...

  4. python访问mysql_python连接mysql

    首先需要导入驱动模块 打开cmd导入模块 pip install mysqldb(pymysql) python2.x版本--------->mysqldb python3.x版本------- ...

  5. python 连接mysql_python连接MySQL

    首先,要安装好MySQL,结果我给忘了.. 应该是这个,我还在下载:http://dev.mysql.com/downloads/file.php?id=458460 然后,python要安装连接My ...

  6. python连接mysql_Python连接MYSQL数据库

    首先在pycharm中安装mtsqlclient的包 等待安装完成以后,进入编辑页面就可以正常编程了.举例如下: import MySQLdb #import situation as sit con ...

  7. pymysql连接mysql_python使用MYSQL数据库

    什么是MYSQL数据库 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面, ...

  8. mac 黑窗口连接mysql_python操作mysql数据库

    python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...

  9. python eve mysql_python连接 MySQ 数据库

    python 是目前比较流行的语言,所以学习一下 首先需要 安装MySQL-python驱动 下载地址:http://dev.mysql.com/downloads/connector/python/ ...

最新文章

  1. python中的repr是什么意思_Python中__repr__和__str__区别详解
  2. CodeForces 1110H. Modest Substrings
  3. POJ2987 Firing 最大权闭合图
  4. 使用npm安装vue项目+使用
  5. 名字正则只能是中文英文_F开头的英文名字有哪些?英文名字典词典,根据中文名姓名发音起关联英文名,最强英文名取名攻略大全!...
  6. php exeil导入,反编译工具ILSpy.exe
  7. 2016 计算机控制技术试题,计算机控制技术试题
  8. 【FastDFS】分布式文件系统FastDFS之FastDHT文件去重
  9. PPT的一键操作 原来这么神奇
  10. no valid sudoers sources found, quitting ubuntu 16.04 devstack
  11. OpenAI又放大招:连接文本与图像的CLIP,在ImageNet上效果媲美ResNet50
  12. 不用运动快速有效减肥——红光光浴#大健康#红光光浴#红光#种光光学
  13. 如何处理接口幂等性问题(重复提交)
  14. Kahan求和公式原理
  15. 陶泓达:实力指导短线交易策略!让你翻仓回本
  16. XPRIZE宣布启动旨在保护全球热带雨林的新竞赛,奖金总额达1000万美元
  17. 四川高中计算机考试操作题,2017年excel考试操作题目「附答案」
  18. web项目设计与开发——DBHelper
  19. 单片机毕设分享100例(五)
  20. python读写protobuf

热门文章

  1. 【Jmeter篇】临界区控制器Critical Section Controller业务流顺序负载压测
  2. 【视频】视频文件格式和视频编码
  3. 【资讯】这10大科技,将彻底改变你的生活
  4. 深度学习入门|第5章 误差反向传播法(二)
  5. MyBatis映射文件1(增删改、insert获取自增主键值)
  6. POJ 3268 Silver Cow Party (最短路径)
  7. 15.6.6-sql字符串组装技巧
  8. java 历届试题 合根植物
  9. 蓝桥杯第八届省赛JAVA真题----油漆面积
  10. oracle只读事物,oracle的只读事务