1. python中的hive代码小tips1-使用 PyHive 库连接 Hive 并执行 SQL 语句的基本操作
创建一个临时表,加载 CSV 文件的数据,然后刷新表。在实际操作中,需要替换your_hive_host、your_username、your_temp_table 和 path_to_your_csv_file.csv 为你自己的实际值。假设 CSV 文件有三列,数据类型分别为 INT、STRING 和 FLOAT,需根据实际数据调整表结构。加载 CSV 文件时,可能遇到权限问题,需先解决权限问题。
在 PyHive 中执行 SQL 语句时,多个操作不可以写到同一个 SQL 语句中。即使在 SQL 字符串中用分号; 分隔多个语句,PyHive 的 execute() 方法只会执行第一个语句,其余被忽略。若需执行多个 SQL 语句,应分开执行。
使用 PyHive 在 Python 中创建一个以 TEXTFILE 格式存储的表。需要替换your_hive_host、your_username 和 your_table 为你实际值。表有三个列,分别为 column1、column2 和 column3,数据类型分别为 INT、STRING 和 FLOAT。ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 表示字段之间用逗号分隔,STORED AS TEXTFILE 指定表存储格式为文本文件。LINES TERMINATED BY 可选,用于指定行分隔符,默认为换行符 \n。
创建其他格式存储的表,如PARQUET格式。在 Python 中使用 pyhive 取 Hive 表中近 xx 天的数据(如近10天),需通过指定时间范围或使用 SQL 查询来实现,具体操作需结合 Hive 数据表结构与时间戳字段。
2. python如何操作SQL语句
这里有个比较清楚的解答:
http://..com/question/262503775.html
但是你的是一个文本的话,就要稍微改一下咯
如果改成cx_Oracle的话,就是这样的:
import sys
import cx_Oracle
import os
class handleDataBase:
def __init__(self,user,passwd,server,sql):
self.user=user
self.passwd=passwd
self.server=server
self.sql=sql
self.conn = cx_Oracle.connect("%s/%s@%s"%(self.user,self.passwd,self.server))
def selectDB(self):
cursor = self.conn.cursor()
cursor.execute("select count(1) from search_item_08")
ret = cursor.fetchall()
cursor.close()
print ret
return ret
def closeDB(self):
self.conn.close()
if __name__ == "__main__":
if len(sys.argv) < 4:
print "Need Arguments: user passwd server"
sys.exit(1)
user=sys.argv[1]
passwd=sys.argv[2]
server=sys.argv[3]
#sql='select count(1) from search_item_08;' #注意这里要改
sql = open('a.sql','r').read() #改成从文件读取
#接下来就访问数据库了
handleDB = handleDataBase(user,passwd,server,sql)
handleDB.selectDB()
handleDB.closeDB()