我正在尝试从Teradata big读取一个表,这需要很多时间。我的表有500万行和60列,在内存中加载需要30分钟。我使用的是TeradasQL包,但使用RJDBC包在R中加载同一个表需要5分钟
Python代码(这需要30分钟)
import teradatasql
import pandas as pd
conn = teradatasql.connect(host=host, user=user_name, password=password, database=database)
df = pd.read_sql("SELECT * FROM big_table", conn)
R代码(仅需3分钟)
library(RJDBC)
# teradata conecction
con_tera <- dbConnect(drv_tera, "jdbc:teradata://{ip_host}/DATABASE=DBI_MIN,DBS_PORT=1025",Sys.getenv("TERA_DB_USER"), Sys.getenv("TERA_DB_PASS"))
# create query
final_query <- 'select * from big_table'
# get data
dataset_caribu <- dbGetQuery(con_tera,final_query)
我试图在python中增加游标的数组化,但这并没有大大提高执行时间
pandas.read_sql比直接使用TeradaSQL驱动程序慢
下面是一个简单的Python脚本,我用于测试500万行和60列,其中80%为非空值,20%为空列值:
我的结果是:
相关问题 更多 >
编程相关推荐