我正在使用pandas_udf在我的spark集群上应用机器学习模型,并且对预定义通过箭头发送到UDF的最小记录数很感兴趣。
我按照databricks教程学习了大部分的UDF...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。
发布于 2020-05-07 07:24:10
无法在Spark docs中设置最小批处理大小,但在这种情况下,max有点误导。这应该类似于“剩余部分之前的批处理大小”。
例如:如果您的数据集中有100132行,并且maxRecordsPerBatch是10000,那么您将得到10批大小为10000的批次,以及一批大小为10000的批次。(如果您有多个执行者,您可能会有额外的批次和剩余物,这取决于事物的拆分方式。)
您可以知道您的近似min批处理大小取决于您的余数,否则所有批处理大小都将恰好是最小批处理大小。
https://stackoverflow.com/questions/56246531
复制相似问题