Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 群集中有20个分区但没有工作区的RDD_Postgresql_Jdbc_Apache Spark_Pyspark_Rdd - Fatal编程技术网

Postgresql 群集中有20个分区但没有工作区的RDD

Postgresql 群集中有20个分区但没有工作区的RDD,postgresql,jdbc,apache-spark,pyspark,rdd,Postgresql,Jdbc,Apache Spark,Pyspark,Rdd,我有一个RDD,它有20个分区。我有一个有5个工人(5个核心)的集群。我只是尝试根据以下公式计算每个分区中的元素数: def count_in_a_partition(idx, iterator): count = 0 for _ in iterator: count += 1 return idx, count rdd.mapPartitionsWithIndex(count_in_a_partition).collect() 上面的代码一直在运行,Web GUI显示工

我有一个RDD,它有20个分区。我有一个有5个工人(5个核心)的集群。我只是尝试根据以下公式计算每个分区中的元素数:

def count_in_a_partition(idx, iterator):
  count = 0
  for _ in iterator:
    count += 1
  return idx, count

rdd.mapPartitionsWithIndex(count_in_a_partition).collect()
上面的代码一直在运行,Web GUI显示工人根本没有被使用,即“0已使用”。即使使用中的
内存
也显示
0.0b已使用
。好像有什么不对劲。你会期望至少有一个工人在做什么。我能做些什么来加速计算和利用核呢


我认为每个节点的
内存:20.0 GB
大于每个节点
2.7 GB
的可用内存是问题所在。降低它有助于:

from pyspark.sql import SparkSession

spark = SparkSession\
    .builder\
    .appName("jupyter-pyspark")\
    .master("spark://spark-master:7077")\
    .config("spark.executor.memory", "2g")\
    .config("spark.driver.memory", "2g")\
    .getOrCreate()

我认为每个节点的
内存:20.0 GB
大于每个节点
2.7 GB
中的可用内存是问题所在。降低它有助于:

from pyspark.sql import SparkSession

spark = SparkSession\
    .builder\
    .appName("jupyter-pyspark")\
    .master("spark://spark-master:7077")\
    .config("spark.executor.memory", "2g")\
    .config("spark.driver.memory", "2g")\
    .getOrCreate()

嗨,你应该注意一下你的火花配置。将spark.executor.instances设置为(核心数-1)在大多数情况下都有效。还可以减少执行器使用的内存。我从未见过等待的状态。。。你确定postgre运行良好吗?我认为你减少executor使用的内存是正确的。谢谢你能分享你的spark提交命令吗?嗨,你应该关注一下你的spark配置。将spark.executor.instances设置为(核心数-1)在大多数情况下都有效。还可以减少执行器使用的内存。我从未见过等待的状态。。。你确定postgre运行良好吗?我认为你减少executor使用的内存是正确的。谢谢你能分享你的spark提交命令吗?