如何从Spark Streaming脚本写入HDFS
问题描述:
我正在执行Spark Streaming应用程序,我想将某些结果转储到不以RDD格式的HDFS,它们是简单的字符串。那么我怎样才能将这些数据转储到HDFS,并且如果我们可以将这些数据附加到文件中,这种方式将非常有用。如何从Spark Streaming脚本写入HDFS
答
你总是可以从字符串数组创建RDD: val newRDD = sc.parallelize(/* here your list or array */)
对于输出写入到文件,你可以使用saveAsTextFiles()方法。 foreachRDD + saveAsParquet(path, overwrite = true)
- 使用此功能,您可以将每个rdd写入单个文件。
感谢您的建议,我想知道是否有办法将其转换为RDD。并且可以使用上面的saveAsParquet方法追加到同一个文件,以便不会覆盖。 – JSR29
流表示为一系列RDD - 因此您需要使用rdd。 要附加数据,您可以使用:val data = sc.textFile(“/ path/to/my/file”) 比向数据添加新值并保存为新文件 –