【问题标题】:saving different parts of an rdd in different text files optimally [duplicate]以最佳方式将rdd的不同部分保存在不同的文本文件中[重复]
【发布时间】:2018-01-30 17:32:41
【问题描述】:

我有一个 rdd,其中的元素是字典。这个字典中的值是一个列表。在此列表中,有 4 个元素。假设列表如下,[1,2,3, No] 或 [3,5,7, Yes] 我想过滤所有那些没有的元素并将它们保存在一个文本文件中,而所有的元素都保存在另一个文本文件中。 rdd 涉及大量处理才能达到这个是/否分类。如果我使用两个 rdd.filter().saveastextFile,是否需要两倍的时间?怎样才能做到最好

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    通过在过滤之前在RDD上调用cache(),所有的转换都将被保存。因此它不会花费两倍的时间,而只是稍微长一点的时间(保存/加载数据以及第二次过滤所需的时间)。

    【讨论】:

      【解决方案2】:

      在应用 yes/no 过滤器并保存之前,只需缓存您的 RDD。

      据我所知,目前还不可能一次将一个 RDD 分叉成多个 RDD。

      想到了一个主意。您可以 mapPartitions 并为每个分区过滤两次以获得两个简单的数组,然后手动将其保存到两个文件中。显然,这些文件名需要是唯一的,以便您可以在 mapPartitions 的开头生成一个 guid 或使用 mapPartitionsWithIndex。

      【讨论】:

        猜你喜欢
        • 2016-06-02
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        • 2010-10-29
        • 2017-01-09
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多