当前位置:  开发笔记 > 数据库 > 正文

DataFrame到spark scala中的HDFS

如何解决《DataFrame到sparkscala中的HDFS》经验,为你挑选了1个好方法。

我有一个格式为org.apache.spark.sql.DataFrame = [user_key:string,field1:string]的spark数据框.当我使用saveAsTextFile将文件保存在hdfs结果时,看起来像[12345,xxxxx].我不希望将开始和结束括号写入输出文件.如果我使用.rdd转换为RDD仍然在RDD中存在括号.

谢谢



1> zero323..:

只需连接值和存储字符串:

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(","))

然后保存.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有