我有很大的原始jsonl数据集(约200Gb,约2000万行)。我需要从那里提取重要属性,并将中间数据集存储在csv中,以便进一步转换为HDF5,镶木地板等。显然,我不能使用JSONDataSet
加载原始数据集,因为它利用了{{1 }}在幕后,将熊猫用作如此大小的数据集听起来是个坏主意。因此,我正在考虑逐行读取原始数据集,处理并将处理后的数据逐行追加到中间数据集。
我无法理解的是如何通过pandas.read_json
和AbstractDataSet
方法使其与_load
兼容。
P.S。我知道我可以将其移出kedro的上下文,并引入预处理的数据集作为原始数据集,但这有点违反了完整管道的整个想法。
答案 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