gpt4 book ai didi

python - 从 takeOrdered 返回一个 RDD,而不是一个列表

转载 作者:太空狗 更新时间:2023-10-30 02:10:03 28 4
gpt4 key购买 nike

我正在使用 pyspark 进行一些数据清理。一个非常常见的操作是获取文件的一小部分并将其导出以供检查:

(self.spark_context.textFile(old_filepath+filename)
.takeOrdered(100)
.saveAsTextFile(new_filepath+filename))

我的问题是 takeOrdered 返回的是列表而不是 RDD,因此 saveAsTextFile 不起作用。

AttributeError: 'list' object has no attribute 'saveAsTextFile'

当然,我可以实现自己的文件编写器。或者我可以使用并行化将列表转换回 RDD。但我想在这里成为一个 Spark 纯粹主义者。

有没有办法从 takeOrdered 或等效函数返回 RDD?

最佳答案

takeOrdered() 是一个 action and not a transformation所以你不能让它返回一个 RDD。
如果不需要排序,最简单的替代方法是 sample()
如果确实需要排序,可以尝试组合使用 filter()sortByKey() 来减少元素数量并对它们进行排序。或者,按照您的建议,重新并行化 takeOrdered()

的结果

关于python - 从 takeOrdered 返回一个 RDD,而不是一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32341897/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com