3

我正在使用 pandas_udf 在我的 spark 集群上应用机器学习模型,并且有兴趣预定义通过箭头发送到 UDF 的最小记录数。

我遵循了大部分UDF的databricks教程...... https://docs.databricks.com/applications/deep-learning/inference/resnet-model-inference-tensorflow.html

在教程中,我将 spark 会议设置为具有最大批量大小并启用箭头。我可以轻松设置最大批量大小,但是我想知道是否有类似的方法来设置 UDF 将处理的最小批量大小?

spark = SparkSession.builder.appName('App').getOrCreate()

spark.conf.set("spark.sql.execution.arrow.enabled", "true")

spark.conf.set('spark.sql.execution.arrow.maxRecordsPerBatch', PyArrowBatchSize)

我正在运行 spark 版本 2.4.3 和 python 3.6.0。

4

1 回答 1

1

没有办法在Spark 文档中设置最小批量大小,但在这种情况下max有点误导。这应该类似于“余数之前的批量大小”。

例如:如果您的数据集中有 100132 行,而您的行maxRecordsPerBatch数是 10000,那么您将获得 10 批大小为 10000 的批次,剩余的一批大小为 132。(如果你有多个执行者,你可能会有额外的带有余数的批次,这取决于事情是如何分割的。)

您可以知道您的近似min批量大小取决于您的余数,否则所有批量大小将恰好是最小批量大小。

于 2020-05-06T23:24:10.063 回答