我正在集羣模式下運行一個很大的工作。但是,我只對兩個浮動數字感興趣,我希望在工作成功時以某種方式閱讀。將兩個浮動塊寫入常規txt的正確方法
這裏我想做:
from pyspark.context import SparkContext
if __name__ == "__main__":
sc = SparkContext(appName='foo')
f = open('foo.txt', 'w')
pi = 3.14
not_pi = 2.79
f.write(str(pi) + "\n")
f.write(str(not_pi) + "\n")
f.close()
sc.stop()
然而,「foo.txt的」不會出現在任何地方寫的(可能它被寫在遺囑執行人,或東西)。我嘗試了'/homes/gsamaras/foo.txt',這將是網關的pwd
。但是,它說:No such file or directory: '/homes/gsamaras/myfile.txt'
。
如何做到這一點?
import os, sys
import socket
print "Current working dir : %s" % os.getcwd()
print(socket.gethostname())
表明,司機居然是羣集的節點,這就是爲什麼我沒有看到我的網關文件。
也許以某種方式在HDFS中寫入文件?
這也不行:
Traceback (most recent call last):
File "computeCostAndUnbalancedFactorkMeans.py", line 15, in <module>
f = open('hdfs://myfile.txt','w')
IOError: [Errno 2] No such file or directory: 'hdfs://myfile.txt'
也許'/homes/gsamaras/foo.txt',你錯過了主要的斜線。 – citaret
這看起來很好,應該寫在驅動程序節點上。如果您不確定,只需登錄'os.getcwd()'和'socket.gethostname()'。 – zero323
citaret,錯字! :) @ zero323原來我的網關不是我的驅動程序,這就是爲什麼這不起作用..看我的編輯! – gsamaras