使用dask将CSV文件转换为实木复合地板(jupyter内核崩溃)

时间:2019-03-05 22:58:20

标签: python tensorflow jupyter-notebook dask parquet

我正在尝试使用jupyter笔记本将大小适中的CSV文件转换为镶木地板格式。但是,笔记本在尝试转换时会重新启动。

由于dask增大了内存大小并加载了适合内存的数据块,因此对于大于内存的数据集执行此错误应该不会发生。 (我内核崩溃的原因是内存过载)。我正在dask的单台计算机上运行此内核。

代码在下面。


import dask
import dask.dataframe as dd
from dask.distributed import Client
client = Client()

merchant = dd.read_csv('/home/michael/Elo_Merchant/merchants.csv')
merchant.to_parquet('merchants.parquet') # kernel restarts when run this line.

更新:

我用终端运行相同的东西,并得到了这个错误。

>>>merchant.to_parquet('merchants.parquet')
2019-03-06 13:22:29.293680: F tensorflow/core/platform/cpu_feature_guard.cc:37] The TensorFlow library was compiled to use AVX instructions, but these aren't available on your machine.
Aborted
$/usr/lib/python3.5/multiprocessing/semaphore_tracker.py:129: UserWarning: semaphore_tracker: There appear to be 12 leaked semaphores to clean up at shutdown
  len(cache))

在这个问题上,谁能帮助我。

谢谢

迈克尔

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的办法。我将实木复合地板转换引擎更改为fastparquet。代码如下。我以前仅安装过pyarrow。如果两者都安装,fastparquet将是默认引擎。尽管如此,我还是在代码中进行了演示,因为否则,它将与上面的代码相同。

import dask.dataframe as dd

merchant = dd.read_csv('/home/michael/Elo_Merchant/merchants.csv')
merchant.to_parquet('merchants.parquet', engine='fastparquet') #Works 

希望这会有所帮助

谢谢

迈克尔