【发布时间】:2020-06-02 04:43:52
【问题描述】:
我在 MySql 中有一个 4000 万行 x 54 列的表格。我尝试使用 read_sql 分块读取表,但内存不足(我正在使用 32 gb、8 核 EC2 实例)。然后我尝试了 Limit 和 Offset 方法,但它真的很慢。
有没有什么有效的方法来读取表格而不丢失内存并且读取表格更快。
我研究了一些大数据技术,但由于我不熟悉大数据,我无法决定选择哪一种。
目前我正在使用它来读取表格,但它真的很慢而且效率肯定不是很高。
def read_sql_chunked(query, con, nrows, chunksize=10000):
start = 1
dfs = []
while start < nrows:
df = pd.read_sql("%s LIMIT %s OFFSET %s" % (query, chunksize, start), con)
dfs.append(df)
print(start, chunksize)
start += chunksize
return pd.concat(dfs, ignore_index=True)
dt = read_sql_chunked(query=query, con=conn, nrows=40000000)
【问题讨论】:
-
请不要在这里使用印度语。如您所见,人们不知道什么是“千万行”。