写入 Apache Spark 中的文件
Writing to a file in Apache Spark
我正在编写 Scala 代码,要求我写入 HDFS 中的文件。
当我在本地使用 Filewriter.write
时,它起作用了。同样的事情在 HDFS 上不起作用。
查了一下,发现Apache Spark中有如下选项可以写入——
RDD.saveAsTextFile
和 DataFrame.write.format
.
我的问题是:如果我只想将 int 或 string 写入 Apache Spark 中的文件怎么办?
跟进:
我需要将 header、DataFrame 内容写入输出文件,然后附加一些字符串。
sc.parallelize(Seq(<String>))
有帮助吗?
使用 Seq
使用您的数据 (int/string) 创建 RDD
:有关详细信息,请参阅 parallelized-collections:
sc.parallelize(Seq(5)) //for writing int (5)
sc.parallelize(Seq("Test String")) // for writing string
val conf = new SparkConf().setAppName("Writing Int to File").setMaster("local")
val sc = new SparkContext(conf)
val intRdd= sc.parallelize(Seq(5))
intRdd.saveAsTextFile("out\int\test")
val conf = new SparkConf().setAppName("Writing string to File").setMaster("local")
val sc = new SparkContext(conf)
val stringRdd = sc.parallelize(Seq("Test String"))
stringRdd.saveAsTextFile("out\string\test")
跟进示例:(测试如下)
val conf = new SparkConf().setAppName("Total Countries having Icon").setMaster("local")
val sc = new SparkContext(conf)
val headerRDD= sc.parallelize(Seq("HEADER"))
//Replace BODY part with your DF
val bodyRDD= sc.parallelize(Seq("BODY"))
val footerRDD = sc.parallelize(Seq("FOOTER"))
//combine all rdds to final
val finalRDD = headerRDD ++ bodyRDD ++ footerRDD
//finalRDD.foreach(line => println(line))
//output to one file
finalRDD.coalesce(1, true).saveAsTextFile("test")
输出:
HEADER
BODY
FOOTER
more examples here. . .
我正在编写 Scala 代码,要求我写入 HDFS 中的文件。
当我在本地使用 Filewriter.write
时,它起作用了。同样的事情在 HDFS 上不起作用。
查了一下,发现Apache Spark中有如下选项可以写入——
RDD.saveAsTextFile
和 DataFrame.write.format
.
我的问题是:如果我只想将 int 或 string 写入 Apache Spark 中的文件怎么办?
跟进:
我需要将 header、DataFrame 内容写入输出文件,然后附加一些字符串。
sc.parallelize(Seq(<String>))
有帮助吗?
使用 Seq
使用您的数据 (int/string) 创建 RDD
:有关详细信息,请参阅 parallelized-collections:
sc.parallelize(Seq(5)) //for writing int (5)
sc.parallelize(Seq("Test String")) // for writing string
val conf = new SparkConf().setAppName("Writing Int to File").setMaster("local")
val sc = new SparkContext(conf)
val intRdd= sc.parallelize(Seq(5))
intRdd.saveAsTextFile("out\int\test")
val conf = new SparkConf().setAppName("Writing string to File").setMaster("local")
val sc = new SparkContext(conf)
val stringRdd = sc.parallelize(Seq("Test String"))
stringRdd.saveAsTextFile("out\string\test")
跟进示例:(测试如下)
val conf = new SparkConf().setAppName("Total Countries having Icon").setMaster("local")
val sc = new SparkContext(conf)
val headerRDD= sc.parallelize(Seq("HEADER"))
//Replace BODY part with your DF
val bodyRDD= sc.parallelize(Seq("BODY"))
val footerRDD = sc.parallelize(Seq("FOOTER"))
//combine all rdds to final
val finalRDD = headerRDD ++ bodyRDD ++ footerRDD
//finalRDD.foreach(line => println(line))
//output to one file
finalRDD.coalesce(1, true).saveAsTextFile("test")
输出:
HEADER
BODY
FOOTER
more examples here. . .