我已经阅读了大约15个csv文件:
df = dd.read_csv("gs://project/*.csv", blocksize=25e6,
storage_options={'token': fs.session.credentials})
然后我持久化了数据帧(它使用7.33 GB内存):
df = df.persist()
我设置了一个新索引,因为我希望该字段上的group by尽可能高效:
df = df.set_index('column_a').persist()
现在我有181个分区和180个分区。
为了测试group by的运行速度,我尝试了一个只打印group Dataframe的自定义应用函数:
grouped_by_index = df.groupby('column_a').apply(lambda n: print(n)).compute()
使用正确的列打印数据帧,但值为“1”、“foo”或“True”。例子:
column_b column_c column_d column_e column_f column_g \
index
a foo 1 foo 1 1 1
我还得到警告:
/opt/conda/lib/python3.7/site-packages/ipykernel_-launcher.py:1:
meta
未指定,从部分数据推断。
元
.apply(func)在:.apply(func,meta={'x':'f8','y':'f8'})之后
数据帧结果或:.apply(func,meta=('x','f8'))
对于series result“”,启动IPython内核的入口点。