我试图用pyhive从python的hive中读取一个大表,这个表有大约1600万行。但这大约需要33分钟。当我用rjdbc读取r中的同一个表时,读取整个表大约需要13分钟。这是我的密码
library(RJDBC)
driver <- try(JDBC("org.apache.hive.jdbc.HiveDriver", paste0(jar_dir, '/hive-jdbc-3.1.2-standalone.jar')))
con_hive <- RJDBC::dbConnect(driver, "jdbc:hive2://hive_ip:10000/dev_perm")
query <- "SELECT * FROM mi table WHERE periodo='2020-02-01'"
replica_data <- dbGetQuery(con_hive, query)
在python中,我的代码是
import pyhive
conn = hive.Connection(host=ip_hive)
curs = conn.cursor()
cursor.execute("SELECT * FROM mi table WHERE periodo='2020-02-01'")
results = pd.DataFrame(cursor.fetchall(), columns=[desc[0] for desc in cursor.description])
我已经尝试在python中设置multiple cursor.arraysize,但这并没有提高性能,而且我注意到当我设置arraysize大于10000时,hive会忽略它并设置10000。默认值为1000。
在python中读取配置单元表时,如何提高性能?
暂无答案!
目前还没有任何答案,快来回答吧!