2017-04-08 57 views
2

数据框:怎样的火花SQL DF连续写了两行到S3

  Df row1 : Ravi Computers 20 

     Df row2 : Jon Electronics 21 

     Df row3 : Sam arts  20 

我为什么能写入写入S3文件

  Line1: Index:Ravi 
      Line2: Ravi Computers 20 
      Line3: Index:Jon 
      Line4: Jon  Electronics 21 
      Line5: Index:Sam 
      Line6: Sam  arts  20 

回答

0

写作的星火SQL数据帧到2线S3,你必须map DF的每一行中的相应单元串用一个新行\n

val df = sc.parallelize(Seq(("Ravi","Computers",20),("Jon","Electronics",21), 
("Sam","arts",20))).toDF 

df.map(r => s"Index:${r.getString(0)}\n${r.getString(0)} ${r.getString(1)} ${r.getInt(2)}").write.csv("s3n://........") 

它将写入DF成期望的输出格式:

 Line1: Index:Ravi 
     Line2: Ravi Computers 20 
     Line3: Index:Jon 
     Line4: Jon  Electronics 21 
     Line5: Index:Sam 
     Line6: Sam  arts  20 
+0

我需要写字符串作为JSON,我试图UR与写JSON的解决方案(“S3”),但是我已经结束了这样的事情 - - > {“value”:“Index:Ravi \ nRavi Computers 20”} {“value”:“Index:Jon \ nJon Electronics 21”} –

+0

如果要将字符串编写为JSON,则不能将其写入2线。它会产生一个损坏的JSON文件。 – himanshuIIITian

+0

我的df.write.json(“s3”)正在创建单独的json文件,是否可以一次写入所有行或追加到单个文件中? –