我正在处理内存中的大型文本文件,分3个阶段(目前未使用pandas
/ dataframes
)
这需要一个原始数据文本文件并分四个阶段进行处理。
第1阶段处理raw.txt
并启动stage1.txt
第2阶段流程stage1.txt
并启动stage2.txt
第3阶段流程stage2.txt
并启动results.txt
如何设置Dask脚本以在本地处理此问题?
除此之外,您如何将其设置为与raw.txt
的多个一起使用。
(即raw1,raw2,raw3)
目前,每个阶段方法都没有返回任何内容,只是将下一个文件写入下一个方法知道的特定文件位置。
def stage_1():
outputFile=r"C:\Data\Processed\stage_1.txt"
inputFile=r"C:\Data\RawData\rawData.txt"
f1 = open(outputFile,"w+")
f2 = open(inputFile,'r')
#Process input file f2
#Write results to f1
f2.close()
f1.close()
if __name__ == "__main__":
stage_1()
stage_2()
stage_3()
答案 0 :(得分:1)
我怀疑你会遇到一些问题。
Dask通常假定函数是pure而不是依赖于副作用。如果你想使用Dask,我建议你改变你的功能,使它们返回数据而不是生成文件。
作为一种hacky解决方法,您可以在函数之间传递文件名。
您描述的工作流程没有内在的并行性。你可以让dask运行你的函数,但它会一个接一个地运行它们。你需要考虑如何打破你的计算,以便有几个函数调用可以并行运行。 Dask不会为你做这个想法。