Spark / Scala:使用变量名称写入文件

时间:2018-04-05 21:26:44

标签: scala apache-spark

需要将一个DataFrame写入csv文件,文件名根据某个迭代索引(idx)而变化:

for (idx <- 1 to 3)
  // do some operation and generate a df that depends on idx   
  ...
  df.coalesce(1).write.csv("/temp/path/file#.csv")

#应该随着idx的变化而变化(换句话说,文件名应该顺序为file1.csv,file2.csv,file3.csv,因为迭代进行)。这似乎是一个非常普遍的问题,但我还没有在Scala中找到一个明确的解决方案。谢谢!

1 个答案:

答案 0 :(得分:1)

经典的方式是:

for (idx <- 1 to 3)
  // do some operation and generate a df that depends on idx   
  ...
  df.coalesce(1).write.csv("/temp/path/file_" + idx + ".csv")

更好的新方式是

for (idx <- 1 to 3)
  // do some operation and generate a df that depends on idx   
  ...
  df.coalesce(1).write.csv(s"/temp/path/file_${idx}.csv")