Apache spark saveAsTextFile在foreachRDD中的驱动程序或工作程序上执行。
下面是我的代码片段。我有一个数据流,我正试图将其保存到HDFS。只是想知道压缩的有效方法Apache spark saveAsTextFile在foreachRDD中的驱动程序或工作程序上执行。,apache-spark,streaming,Apache Spark,Streaming,下面是我的代码片段。我有一个数据流,我正试图将其保存到HDFS。只是想知道压缩的有效方法 pairedDStream.foreachRDD { rdd => val time = Calendar.getInstance.getTimeInMillis; val textOutputFolder = outputDir + "/output-" + time if (args.length == 4) { val compress
pairedDStream.foreachRDD { rdd =>
val time = Calendar.getInstance.getTimeInMillis;
val textOutputFolder = outputDir + "/output-" + time
if (args.length == 4) {
val compressionCodec = args(3)
rdd.saveAsTextFile(textOutputFolder, CommonUtils.getCompressionCodec(compressionCodec))
} else {
rdd.saveAsTextFile(textOutputFolder, CommonUtils.getCompressionCodec(null))
}
}
rdd.saveAsTextFile
是在工作节点上执行的,实际上所有rdd操作都是在dstream.foreachRDD
内并行执行的。Spark文档提到,我们应该使用此数据流操作将每个RDD中的数据推送到外部系统
foreachRDD(func):应用
函数func,用于从流生成的每个RDD。此函数
应将每个RDD中的数据推送到外部系统,例如保存
将RDD写入文件,或通过网络将其写入数据库。注
函数func在运行
流应用程序,并且通常会在其中包含RDD操作
将强制计算流式RDD
第节还明确说明了dstream.foreachRDD是一个强大的原语,它允许将数据发送到外部系统。您可以进一步阅读本节,了解如何优化数据流中RDD的操作
希望这有帮助
rdd.saveAsTextFile
是在工作节点上执行的,实际上所有rdd操作都是在dstream.foreachRDD
内并行执行的。Spark文档提到,我们应该使用此数据流操作将每个RDD中的数据推送到外部系统
foreachRDD(func):应用
函数func,用于从流生成的每个RDD。此函数
应将每个RDD中的数据推送到外部系统,例如保存
将RDD写入文件,或通过网络将其写入数据库。注
函数func在运行
流应用程序,并且通常会在其中包含RDD操作
将强制计算流式RDD
第节还明确说明了dstream.foreachRDD是一个强大的原语,它允许将数据发送到外部系统。您可以进一步阅读本节,了解如何优化数据流中RDD的操作
希望这有帮助