use*_*622 11 python partitioning apache-spark rdd pyspark
我知道该partitionBy
功能会分区我的数据.如果我使用rdd.partitionBy(100)
它将按键将我的数据分成100个部分.即,与类似键相关联的数据将被组合在一起
zer*_*323 13
这里没有简单的答案.全部取决于数据量和可用资源.分区数量太大或太少都会降低性能.
一些资源声称分区数量应该是可用核心数量的两倍左右.另一方面,单个分区通常不应超过128MB,单个shuffle块不能超过2GB(参见SPARK-6235).
最后,您必须纠正潜在的数据偏差.如果某些密钥在您的数据集中过多,则可能导致资源使用次优和潜在失败.
不,或者至少不是直接的.您可以使用keyBy
方法将RDD转换为所需的格式.此外,任何Python对象都可以被视为键值对,只要它实现了所需的方法,使其行为类似于Iterable
长度等于2.请参阅如何确定对象是否是PySpark中的有效键值对
tuple
整数.引用Python词汇表:
如果一个对象具有一个在其生命周期内永远不会改变的哈希值(它需要一个
__hash__()
方法),并且可以与其他对象进行比较(它需要一个方法),则该对象是可清除的__eq__()
.比较相等的可哈希对象必须具有相同的哈希值.
归档时间: |
|
查看次数: |
18780 次 |
最近记录: |