我有一个格式为org.apache.spark.sql.DataFrame = [user_key:string,field1:string]的spark数据框.当我使用saveAsTextFile将文件保存在hdfs结果时,看起来像[12345,xxxxx].我不希望将开始和结束括号写入输出文件.如果我使用.rdd转换为RDD仍然在RDD中存在括号.
谢谢
只需连接值和存储字符串:
import org.apache.spark.sql.functions.{concat_ws, col}
import org.apache.spark.sql.Row
val expr = concat_ws(",", df.columns.map(col): _*)
df.select(expr).map(_.getString(0)).saveAsTextFile("some_path")
甚至更好用spark-csv
:
selectedData.write .format("com.databricks.spark.csv") .option("header", "false") .save("some_path")
另一种方法是简单地map
:
df.rdd.map(_.toSeq.map(_.toString).mkString(","))
然后保存.