- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 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/
如何在 Spark-Scala 中使用 takeOrdered(4)(Ordering[Int]) 方法按 2 列或多列排序。 我可以像这样使用 sortBy 来实现: lines.sortBy(x
我想按值对 K/V 对进行排序,然后取最大的五个值。我设法用第一个映射恢复 K/V,用 FALSE 按降序排序,然后将 key.value 反转到原始(第二个映射),然后取前 5 个是 bigget,
pyspark.RDD 中的 takeOrdered 方法从按升序排列的 RDD 中获取 N 个元素,或按此处所述的可选键函数指定 pyspark.RDD.takeOrdered .该示例显示了以下带
pyspark.RDD 中的 takeOrdered 方法从按升序排列的 RDD 中获取 N 个元素,或按此处所述的可选键函数指定 pyspark.RDD.takeOrdered .该示例显示了以下带
当我尝试获取前 3 个元素时它工作正常,但按相反的顺序它不起作用 sc.textFile("/user/sachinkerala6174/inData/movieStat").takeOrdered(
Spark 中 RDD 的 takeOrdered() 方法反转顺序的语法是什么? 为了奖励积分,Spark 中 RDD 的自定义排序语法是什么? 最佳答案 颠倒顺序 val seq = Seq(3,
我正在使用 pyspark 进行一些数据清理。一个非常常见的操作是获取文件的一小部分并将其导出以供检查: (self.spark_context.textFile(old_filepath+filen
spark JavaRDDLike接口(interface)有api takeOrdered(int num, java.util.Comparator comp) 或 top(int num,j
我不太明白以下代码中 lambda 的行为: rdd = sc.parallelize([5,3,1,2)] rdd.takeOrdered(3,lambda s: -1*s) 据我所知,lambda
我在使用 Python 3.4.2 和 Spark 1.4.1 的 PySpark 中 takeOrdered 函数时遇到错误,它应该支持 Python 3。 sc.parallelize([("a"
我对 Spark 的 rdd.take(n) 和 rdd.takeOrdered(n) 的工作方式有些困惑。有人可以用一些例子向我解释这两种方法吗?谢谢。 最佳答案 为了解释排序的工作原理,我们创建了
我是一名优秀的程序员,十分优秀!