【问题标题】:How do you convert RDD[Array[Byte]] into Array[Byte]如何将 RDD[Array[Byte]] 转换为 Array[Byte]
【发布时间】:2019-04-04 02:00:46
【问题描述】:

我在尝试将RDD[Array[Byte]] 转换为Array[Byte] 时有点卡住了。我有以下内容,我首先以RDD(String, Array[Byte]) 的形式从先前定义的元组中提取RDD[Array[Byte]]

val extractArrayFromRDD: RDD[Array[Byte]] = rdd.map(t => t._2)

那我真的只能得到数组的第一个元素了,如下:

val rddToBytes: Array[Byte] = extractArrayFromRDD.first()

但是,我确实需要将整个 Array 返回,但我似乎没有找到办法。有什么想法吗?

谢谢

【问题讨论】:

    标签: arrays scala rdd


    【解决方案1】:

    不确定我是否理解正确,但如果您想收集您的 RDD,您可以使用 Array 获取它

    rdd.collect()
    

    应该返回一个Array[Array[Byte]]。如果您想将数组组合成一个Array[Byte],您可以使用flatten() 或任何适合您需要的东西。

    【讨论】:

    • 感谢您的评论。是的,我不确定如何从 Array[Array[Byte]] 移动到所需的数据结构 Array[Byte]。总的来说,我对 RDD 操作和 Scala 编程确实相当陌生。
    • 很高兴您发现它有帮助。但是请注意收集的含义:您正在失去数据分布的好处,而且您必须确保 RDD 中没有太多数据需要收集到主服务器上的数组中。因此,您通常应该在收集之前完成尽可能多的工作。
    猜你喜欢
    • 2014-07-21
    • 2014-04-18
    • 2023-01-21
    • 2020-02-28
    • 2013-06-26
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 2021-08-28
    相关资源
    最近更新 更多