我在一个目录中有 2000 个镶木地板文件。每个 parquet 文件大小约为 20MB。使用的压缩是 SNAPPY。每个 parquet 文件都有如下所示的行:
+------------+-----------+-----------------+
| customerId | productId | randomAttribute |
+------------+-----------+-----------------+
| ID1 | PRODUCT1 | ATTRIBUTE1 |
| ID2 | PRODUCT2 | ATTRIBUTE2 |
| ID2 | PRODUCT3 | ATTRIBUTE3 |
+------------+-----------+-----------------+
每个列条目都是一个字符串。我正在使用具有以下配置的 p3.8xlarge EC2 实例:
内存:244GB
vCPU : 32
GPU RAM:64GB(每个GPU核心有16GB RAM)
GPU:4特斯拉V100
我正在尝试以下代码:
def read_all_views(parquet_file_lst):
df_lst = []
for file in parquet_file_lst:
df = cudf.read_parquet(file, columns=['customerId', 'productId'])
df_lst.append(df)
return cudf.concat(df_lst)
这在处理前 180 个文件后崩溃,并出现以下运行时错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 9, in read_all_views
File "/home/ubuntu/miniconda3/lib/python3.7/site-packages/cudf/io/parquet.py", line 54, in read_parquet
use_pandas_metadata,
File "cudf/_lib/parquet.pyx", line 25, in
cudf._lib.parquet.read_parquet
File "cudf/_lib/parquet.pyx", line 80, in cudf._lib.parquet.read_parquet
RuntimeError: rmm_allocator::allocate(): RMM_ALLOC: unspecified launch failure
在任何给定时间,只有 10% 的 GPU 和 CPU RAM 被使用。任何想法如何调试这个或相同的解决方法是什么?
GCT1015
相关分类