了解 PySpark 中的 RDD(来自 parallelize)

Understanding RDD in PySpark (from parallelize)

我是 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)

这会打印出“ParallelCollectionRDD[2] at readRDDFromFile at PythonRDD.scala:262”。这里有两个问题:

  1. ParallelCollectionRDD[2]中的2是什么意思?那是多个分区吗?

  2. 另外,为什么 readRDDFromFile 会出现在这里?是不是因为python列表是保存到文件,然后从文件中加载的?

  1. 是的,它的分区数默认设置为 2,您可以使用 repartition()
  2. 对其重新分区
  3. 其实是指readRDDFromFile方法。如果你想打印内容,你需要在打印之前做一些类似collect()的事情