DataFrame到火花标量中的HDFS



我有一个格式为org.apache.spark.sql.DataFrame=[user_key:string,field1:string]的spark数据帧。当我使用saveAsTextFile将文件保存在hdfs中时,结果看起来像[12345xxxxx]。我不希望将左括号和右括号写入输出文件。如果我使用.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(","))

然后保存。

相关内容

  • 没有找到相关文章

最新更新