Aus*_*tin 18
我最终使用了 Dask:
import dask.dataframe as da
ddf = da.from_pandas(df, chunksize=5000000)
save_dir = '/path/to/save/'
ddf.to_parquet(save_dir)
Run Code Online (Sandbox Code Playgroud)
这会保存到 内的多个 parquet 文件save_dir,其中每个子 DataFrame 的行数是chunksize. 根据您的数据类型和列数,您可以调整此设置以使文件达到所需的大小。
另一种选择是使用partition_cols以下选项pyarrow.parquet.write_to_dataset():
import pyarrow.parquet as pq
import numpy as np
# df is your dataframe
n_partition = 100
df["partition_idx"] = np.random.choice(range(n_partition), size=df.shape[0])
table = pq.Table.from_pandas(df, preserve_index=False)
pq.write_to_dataset(table, root_path="{path to dir}/", partition_cols=["partition_idx"])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18100 次 |
| 最近记录: |