我正在尝试从
创建的文件中加载yamlentries = bag.from_sequence([{1:2}, {3:4}])
yamls = entries.map(yaml.dump)
yamls.to_textfiles(r'\*.yaml.gz')
与
yamls = bag.read_test(r'\*.yaml.gz', linedelimiter='\n\n)
但它逐行读取文件。如何从文件中读取yamls?
更新:
blocksize=None
read_text
逐行读取文件。blocksize
,则可以读取压缩文件。如何克服这个?解压缩文件是唯一的选择吗?
答案 0 :(得分:0)
事实上,yamls = bag.read_test(r'\*.yaml.gz').map_partitions(
lambda x: '\n'.join(x).split(delimiter))
不是用于你想到的意义,而是仅用于分隔较大的块。正如您所说,当您使用gzip压缩时,该文件不再是随机可访问的,并且根本无法使用块。
有可能将{{1}}传递给将数据块转换为行的函数(如果您感兴趣的话,可以在{{1}}中)。
目前,解决方法可能如下所示:
{{1}}