了解 PySpark 中的 RDD(来自并行化)
Posted
技术标签:
【中文标题】了解 PySpark 中的 RDD(来自并行化)【英文标题】:Understanding RDD in PySpark (from parallelize) 【发布时间】:2021-01-28 06:07:08 【问题描述】:我是 PySpark(或 Spark)的新手。我将 Python 列表转换为 RDD
name_list_json = [ '"name": "k"', '"name": "b"', '"name": "c"' ]
name_list_rdd = spark.sparkContext.parallelize(name_list_json)
print(name_list_rdd)
这会在 PythonRDD.scala:262 的 readRDDFromFile 处打印出“ParallelCollectionRDD[2]”。这里有两个问题:
ParallelCollectionRDD[2] 中的 2 是什么意思?是分区数吗?
还有为什么 readRDDFromFile 会出现在这里?是不是因为python列表先保存到文件,然后再从文件中加载?
【问题讨论】:
【参考方案1】:-
是的,它的分区数默认设置为 2,您可以使用 repartition() 对其进行重新分区
它实际上是指 readRDDFromFile 方法。如果要打印内容,需要在打印之前执行 collect() 之类的操作
【讨论】:
以上是关于了解 PySpark 中的 RDD(来自并行化)的主要内容,如果未能解决你的问题,请参考以下文章
映射 dict(来自 rdd)以递归方式更改 Python/PySpark 中的列名
如何使 pyspark 作业在多个节点上正确并行化并避免内存问题?