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

时间:2020-02-20 22:17:29

标签: python kedro

我有很大的原始jsonl数据集(约200Gb,约2000万行)。我需要从那里提取重要属性,并将中间数据集存储在csv中,以便进一步转换为HDF5,镶木地板等。显然,我不能使用JSONDataSet加载原始数据集,因为它利用了{{1 }}在幕后,将熊猫用作如此大小的数据集听起来是个坏主意。因此,我正在考虑逐行读取原始数据集,处理并将处理后的数据逐行追加到中间数据集。

我无法理解的是如何通过pandas.read_jsonAbstractDataSet方法使其与_load兼容。

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

1 个答案:

答案 0 :(得分:3)

尝试使用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