Iva*_*ikh 6 python machine-learning apache-spark pyspark pyspark-sql
我有:
我想使用PySpark来应用它们,但是我总是会遇到一些有线错误,例如:
我通常使用类似的代码
def apply_model(partition):
model = load(...) # load model only when apply this function to avoid serialization issue
for row in partition:
yield model.infer(row)
Run Code Online (Sandbox Code Playgroud)
要么
def apply_model(partition):
model = load(...) # load model only when apply this function to
yield from model.infer(partition)
Run Code Online (Sandbox Code Playgroud)
并使用
df.select(...).rdd.mapPartitions(apply_model)
broadcast由于序列化的原因,我无法建模。
问题-如何应用基于python / any-non-jvm的大型模型来引发数据帧并避免引发异常?
您的分区适合单个执行器的内存吗?您可以尝试增加分区数量,看看情况是否有所改善:
df.select(...).repartition(1000).rdd.mapPartitions(apply_model)
Run Code Online (Sandbox Code Playgroud)
通过查看 Spark UI 的指标来验证这是否是一项改进,例如:
比较Median、75th percentile和Max值以查看您的数据是否不存在偏差。
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |