2017-01-19 40 views
-1

你好,我只是想知道如何在星火Python的saveAsTextFile沒有支架和製表符分隔。 例星火saveAsTextFile製表符分隔在Python

('123', 2),('345', 3),('567', 9) to a file-> 
    123 2 
    345 3 
    567 9 

我知道有一個用C風格的印花樣的方式:(%C '\ t' %我,(V1,V2))

提前感謝!

+0

答案一定是還與\ n 123 2 \ n 345 3 \ n 567 9 \ n –

+0

你總是可以做映射之前saveAsTextFile具有製表符分隔的行。 – malisit

+0

你有任何代碼示例嗎?提前致謝!!!對不起,我是很新的火花 –

回答

0

你可以做一個映射,以讓他們製表符分隔的,那麼你可以很容易地使用saveAsTextFile方法,在下面的例子。

rdd = sc.parallelize([('123', 2),('345', 3),('567', 9)]) 
rdd.map(lambda x: "%s\t%s" %(x[0],x[1])).saveAsTextFile("output") 
+0

這工作真棒!謝謝!我一直在尋找這很長一段時間了......而且幾乎沒有關於互聯網上的星火Python的格式化文件,「谷歌」 ...... –

0

這一個工作也:

>>> rdd.map(lambda (k, v): "{0},{1}".format(k, v)).saveAsTextFile("path")

0

如果使用SPARK數據框,你可以用寫格式,像這樣:

rdd = sc.parallelize([('123', 2),('345', 3),('567', 9)]) 
df = spark.createDataFrame(rdd) 
rdd.write.csv(path='output_dir', sep='\t') 

其中變量spark是你pyspark.sql.session.SparkSession