scala - 如何使用scala从spark中的RDD获取值

标签 scala apache-spark bigdata rdd

我想读取存储在特定位置的 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/

相关文章:

scala - 列表的第二个元素

java - Scala 中的 Drools Expert 输出对象

scala - 错误:对象rocksdb不是软件包orgs的成员

scala - Spark 加载决策树数据 - 更改 LabelledPoint 中的标签

java - 机器学习/数据挖掘/大数据 : Popular language for programming and community support

scala - 如何将外部范围的值隐式注入(inject) Scala 特征

apache-spark - 如何在 Zeppelin 上的 Apache Spark 中停止 StreamingContext

scala - Spark/Scala - 从数据框中有条件地选择列

maven - DataTorrent - 开发 Hello World 应用程序

java - 在 hadoop HDFS 中存储大文件?