我正在使用pandas_udf在我的Spark集群上应用机器学习模型,并且对预定义通过箭头发送到UDF的最小记录数感兴趣。
我按照数据砖教程中的大部分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。
答案 0 :(得分:0)
无法在Spark docs中设置最小批处理大小,但是在这种情况下,max
有点误导。类似于“剩余之前的批量大小”。
Ex:如果数据集中有100132行,而maxRecordsPerBatch
为10000,则将得到10个大小为10000的批次,其余为132个大小。 (如果您有多个执行程序,则可能会有更多的批次剩余,这取决于拆分方式。)
您知道min
的批量大小取决于剩余数量,否则所有的批量大小都将恰好是最小的批量大小。