【发布时间】:2019-03-10 17:18:34
【问题描述】:
我读过
https://medium.com/teads-engineering/spark-performance-tuning-from-the-trenches-7cbde521cf60
建议不要使用UDF来节省反序列化/序列化成本。
就我而言,我做了这样的查询
select MYFUN(f1, f2, ...)
from A ...
我使用MYFUN对查询结果逐行进行后处理,例如发送到另一个服务。
def my_fun(f1, f2, ...):
service.send(f1, f2, ...)
session.udf.register('MYFUN', my_fun)
不使用 UDF,我可能想将查询结果保存到 Python 数据帧,或 hdfs 上的 Parque 表,然后按数据帧读取,并逐个处理数据帧。
问题是结果表很大,可能是1M行。 这种情况下,去掉UDF还有意义吗?
将 Spark SQL 结果填充到另一个服务的最佳做法是什么?
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql pyspark-sql