我想读取存储在特定位置的 zip 文件的内容。
所以我使用了 SparkContext.readFile
方法,如下所示:
val zipFileRDD = sc.binaryFiles("./handsOn/repo~apache~storm~14135470~false~Java~master~2210.zip")
zipFileRDD: org.apache.spark.rdd.RDD[(String, org.apache.spark.input.PortableDataStream)] = ./handsOn/repo~apache~storm~14135470~false~Java~master~2210.zip BinaryFileRDD[4] at binaryFiles at <console>:21
我的问题是:
如何从此 RDD 获取 PortableDataStream
实例。
最佳答案
您可以使用collect
action :zipFileRDD.collect
将返回一个Array[(String, PortableDataStream)]
。但这通常不是您真正想要的!如果您随后使用这些实例读取文件,那么您实际上并没有使用 Spark 的功能:一切都发生在您的驱动程序中。相反,应用 map
和其他转换,以便在不同的工作线程上读取不同的文件。
关于scala - 如何使用scala从spark中的RDD获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34150111/