如何在 kedro 中处理庞大的数据集

How to process huge datasets in kedro

我有相当大的(~200Gb,~2000 万行)原始 jsonl 数据集。我需要从那里提取重要的属性并将中间数据集存储在 csv 中,以便进一步转换为 HDF5、parquet 等。显然,我不能使用 JSONDataSet 来加载原始数据集,因为它利用 pandas.read_json,并使用 pandas 作为这种大小的数据集听起来是个坏主意。所以我正在考虑逐行读取原始数据集,处理并将处理后的数据逐行附加到中间数据集。

我无法理解的是如何通过其 _load_save 方法使其与 AbstractDataSet 兼容。

P.S。我知道我可以将其移出 kedro 的上下文,并将预处理数据集作为原始数据集引入,但这有点打破了完整管道的整个想法。

尝试使用 pyspark 来利用延迟计算和批处理执行。 SparkDataSet 在 kedro.contib.io.spark_data_set

中实现

jsonl 的示例目录配置:

your_dataset_name:   
  type: kedro.contrib.io.pyspark.SparkDataSet
  filepath: "\file_path"
  file_format: json
  load_args:
    multiline: True