Python连接mysql、sqlserver、hive、presto方法汇总

汇总了Python连接几种常用数据库的方法。


模块包准备

pymssql:连接SQL server数据库
pymysql:连接MYSQL数据库
pyhive: 连接Hive数据库

#模块安装
! pip install pymssql
! pip install pymysql
! pip install pyhive

pymysql

## connect 连接
#harset可省略,如果数据库有中文,可以将charset设置为‘utf8'或'gbk'
pymssql.connect(server='localhost',user='用户名',password='用户密码',database='数据库名称',charset='gbk')

## sql读取
pd.read_sql(sql,con,index_col=None,coerce_float=True,parse_dates=None,columns=None)

Pymssql

#pymysql
connect=pymysql.connect(host='localhost',user='用户名',password='用户密码',database='数据库名称',port='端口号',charset='gbk')

cursor = connect.cursor()

# 创建测试表 persons,包含字段:ID、name、salesrep
cursor.execute("""
IF OBJECT_ID('persons', 'U') IS NOT NULL
    DROP TABLE persons
CREATE TABLE persons (
    id INT NOT NULL,
    name VARCHAR(100),
    salesrep VARCHAR(100),
    PRIMARY KEY(id)
)
""")
# 插入三条测试数据
cursor.executemany(
    "INSERT INTO persons VALUES (%d, %s, %s)",
    [(1, 'John Smith', 'John Doe'),
     (2, 'Jane Doe', 'Joe Dog'),
     (3, 'Mike T.', 'Sarah H.')])
# 如果连接时没有设置autocommit为True的话,必须主动调用commit() 来保存更改。
conn.commit()
# 查询记录
cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')
# 获取一条记录
row = cursor.fetchone()
# 循环打印记录(这里只有一条,所以只打印出一条)
while row:
    print("ID=%d, Name=%s" % (row[0], row[1]))
    row = cursor.fetchone()
    
# 关闭
conn.close()

连接hive

from pyhive import hive

conn = hive.Connection(host='192.168.0.1',
                       port=10000,
                       auth="CUSTOM",
                       database='gld',
                       username='hive',
                       password='hive')
cursor = conn.cursor()
cursor.execute('select * from student limit 10')
for result in cursor.fetchall():
    print(result)
cursor.close()
conn.close()

连接presto

from pyhive import presto

#打开数据库链接
db=presto.connect(protocol='https',host='xxx',port='xxx',username='username', password='password'

cursor = db.cursor()

sql= """select * from table where time ='2021-03-30'"""

#执行SQL语句
cursor.execute(sql)

#查询第一条数据/所有数据
cursor.fetchone()  
cursor.fetchall()

#data = pd.read_sql(sql=sql,con=db,coerce_float=True) #把查询的sql转换为dataframe格式
data = pd.read_sql(sql=sql,con=db)

#关闭断开链接
cursor.close()
db.close()
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Python可以通过以下方式连接Hive、Spark和MySQL: 1. Hive连接方式: - 使用pyhive连接Hive:pyhive是一个Python库,可以通过它连接Hive。需要安装pyhive和thrift库,然后使用pyhive.connect()方法连接Hive。 - 使用pyhs2库连接Hive:pyhs2是另一个Python库,可以连接Hive。需要安装pyhs2和thrift库,然后使用pyhs2.connect()方法连接Hive。 2. Spark连接方式: - 使用pyspark库连接Spark:pyspark是一个Python库,可以连接Spark。需要安装pyspark库,然后使用SparkSession.builder.appName()方法创建SparkSession对象,从而连接Spark。 3. MySQL连接方式: - 使用pymysql连接MySQL:pymysql是一个Python库,可以连接MySQL。需要安装pymysql库,然后使用pymysql.connect()方法连接MySQL。 - 使用mysql-connector-python连接MySQLmysql-connector-python是另一个Python库,可以连接MySQL。需要安装mysql-connector-python库,然后使用mysql.connector.connect()方法连接MySQL。 ### 回答2: PythonHive都是在数据处理领域应用非常广泛的工具,它们分别有着各自的优点和适用场景。 Python作为一种高级编程语言,拥有简洁明了的语法,非常适合用于数据分析和机器学习等领域的编程。Python的强大之处主要体现在其丰富的第三方库和工具上。例如,NumPy、Pandas、Matplotlib和Scikit-learn等库,提供了非常丰富的数据处理和分析工具,可以快速高效地进行数据处理和可视化分析。此外,Python还支持多种数据格式的读写和转换,如JSON、CSV、Excel等,方便用户进行非常灵活、精确和高效的数据处理。 Hive则是基于Hadoop平台的一种数据仓库解决方案,其优点主要在于其分布式数据处理能力。Hive使用HQL(Hive Query Language)来进行数据查询和转换,其语法类似于SQL,十分显式和易懂。同时,Hive支持多种文件存储格式,如ORC、Parquet等,这些文件格式可对数据进行压缩、格式转换和序列化等操作,提高数据查询和处理的效率。 与Python相比,Hive的强大之处在于其支持分布式集群环境下的大数据处理,可以处理TB级甚至更大规模的数据集。而Python适合处理较小规模的数据集,具有更灵活、易用和迭代化的特点,可以适用更多的数据处理应用场景。 在实际的数据处理应用中,PythonHive可以互补使用。例如,在处理数据集较小的场合下,可以使用Python来进行数据清洗、处理和分析,最后将数据存储到Hive中进行查询和存储。而在处理较大数据集的场合下,Hive可以作为数据仓库来进行数据存储和查询,同时可以使用Python在集群环境下编写UDF(User Defined Function),进行更加复杂和高效的数据计算和处理。 综上所述,PythonHive都是非常优秀的数据处理工具,它们根据不同的应用场景和需求,可以灵活地进行选择和搭配,从而提高数据处理的效率和质量。 ### 回答3: PythonHive都是非常流行的数据处理工具,二者有着各自的优缺点和适用范围。 Python是一种高级编程语言,广泛应用于数据处理、科学计算、Web开发和人工智能等领域,具有简洁、易学、可读性强等特点。对于数据分析与处理来说,Python有着灵活的语法和丰富的数据处理库,如NumPy,Pandas和Scipy等,可以快速实现数据清洗、处理、分析等操作。Python还提供了大量的可视化工具,如Matplotlib和Seaborn等,可以轻松生成各种图表和可视化分析结果。 Hive是一种基于Hadoop的数据仓库解决方案,专门用于处理大规模数据集,具有分布式的,可扩展的,高效的特点。Hive使用SQL-like的查询语言HQL(Hive Query Language),可以将复杂的MapReduce任务转化为SQL查询,可以进行快速的数据分析和查询。Hive提供了丰富的内置函数、数据类型和聚合函数等,可以方便地进行数据清洗和分析,同时支持自定义函数和UDFs,满足用户的个性化需求。 从功能特点上来看,Python适用于数据分析、建模和可视化等领域,可以方便地进行数据清洗、处理和分析,尤其对于小规模和中等规模的数据集处理效率高。而Hive则专注于大规模数据集的处理和分析,能够高效地处理PB级别的数据,但由于Hive属于批处理框架,不适合实时数据处理。 综上所述,PythonHive各自有各自的优势和适用场景,具体应该根据实际需求来选择使用哪种工具。在实际应用中,PythonHive也可以相互配合,Python可用于数据清洗和预处理,Hive可用于海量数据处理和分析,从而构建高效、可靠的数据处理与分析体系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值