我正在使用 Pandas 读取 sql 通过 jdbc/jaydebeapi 读取 netezza 表。
start_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(" DB Start Date Time is " + str(start_time))
int_df = pd.read_sql(query,conn)
end_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
print(" DB End Date Time is " + str(end_time))
查询是一个简单的 select * from database.table
我正在读取一个包含 700K 行的表并创建一个 csv(创建时大小为 600 MB);读取 sql 需要花费大量时间来读取数据库表。DB 开始日期时间是 2020-08-03 10:26:11.317 DB 结束日期时间是 2020-08-03 11:15:19.841
如您所见,差不多一个小时。为什么要读这么久?
我可以使用 nzsql 在几秒钟内读取此表,而使用 spark 数据帧只需 5 秒钟(包括写入 csv 的操作)。可能是什么错误?我没有转换——只是简单的提取;
我的服务器没有内存问题;它有超过 200G 的可用内存空间,并且在运行进程时几乎没有任何 cpu 使用率。什么是瓶颈?还有其他更好的方法来做到这一点吗?