Apache spark PySpark方法math.max、math.ceil错误名称';数学';没有定义
我有以下函数和以下数学方法: math.max和math.ceilApache spark PySpark方法math.max、math.ceil错误名称';数学';没有定义,apache-spark,pyspark,Apache Spark,Pyspark,我有以下函数和以下数学方法: math.max和math.ceil def dp(): defaultParallelism = spark.sparkContext.defaultParallelism return defaultParallelism def files(dp, multiplier, ram, target): maxPartitions = math.max(dp * multiplier, math.ceil(ram / target).toInt)
def dp():
defaultParallelism = spark.sparkContext.defaultParallelism
return defaultParallelism
def files(dp, multiplier, ram, target):
maxPartitions = math.max(dp * multiplier, math.ceil(ram / target).toInt)
return maxPartitions
当我执行以下代码行时:
targetMb = target(128)
maxPartitions = files(defaultParallelism, 2, ramMb, targetMb)
我收到以下错误消息:
NameError:未定义名称“math”
完全错误如下所示:
----> maxPartitions = files(defaultParallelism, 2, ramMb, targetMb)
----> maxPartitions = math.max(dp * multiplier, math.ceil(ram / target).toInt)
你有什么想法吗?
我想这是因为math.max和math.天花,当我删除以下模块时,这是固定的:
from pyspark.sql.functions import *
from pyspark.sql.functions import rand
from pyspark.sql.types import *
from pyspark.sql import SparkSession
from pyspark.sql import DataFrame
出于某种原因(我真的不知道为什么),每当代码中包含上述任何模块时,我都会出现错误是否导入数学?啊啊啊啊。。。。不,我没有导入数学。是pyspark导入数学的代码吗?好的,
import math
成功了。现在我得到了一个错误``module'math'没有属性'max```好的,我几乎解决了这个问题。编辑后的函数def files(dp,multiplier,ram,target):maxPartitions=max(dp*multiplier,math.ceil(ram/target))返回maxPartitions
现在给了我以下错误``TypeError:uuz()接受1个位置参数,但给出了2个``我没有发现这个函数有任何错误,您是否有其他只接受一个参数并传入另一个参数的函数?