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()