df_ = pool.apply_async(func=self.select_data_one, args=(table_name, page_no, page_size))
應用func函數瘟芝,args里面放函數的參數
apply_async(self, func, args=(), kwds={}, callback=None,
error_callback=None):
'''
Asynchronous version of `apply()` method.
'''
問題
df_results 本身就是一個dataframe格式的list
為什么不能直接用concat聯(lián)結起來
而要使用result.get()
df_results = []
for page_no in range(1, page_num+1):
df_ = pool.apply_async(func=self.select_data_one, args=
(table_name, page_no, page_size)) #
df_results.append(df_)
logger.info('..............進程開始................')
pool.close()
pool.join()
logger.info('..........數據融合.........')
end_result = [result.get() for result in df_results]
end_df = pd.concat(end_result, axis=0, sort=False)
解決方法
由于pool.apply_async() 這方法返回的是結果是值的對象沉颂,不是值本身待逞,所以要加get()方法
有點類似groupby后不聚合 不顯示蹲姐,只能用list()才可以顯示