那里。我对myself非常陌生,我自己也在学习UDF。我意识到UDF有时会减慢代码的速度。我想知道你的经历。您应用了什么UDF功能(不能仅用Pyspark代码实现)。有什么有用的UDF函数可以帮助您清理数据吗?除了Pyspark文档之外,还有什么资源可以帮助我学习UDF函数吗?
发布于 2022-03-03 19:39:31
您可以在标准库函数spark中找到大多数所需的功能。导入pyspark.sql.functions -检查此处的文档https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.sql.functions
现在,有时您确实必须创建自定义的UDF,但是要注意,它确实会减慢,因为spark必须对每个dataframe行进行评估。尽量避免这种情况。
当您没有任何其他选项时,请使用它,但尽量减少复杂性和您使用的外部库。
另一种方法是使用RDD,这意味着将数据转换为rdd (MYDF.rdd)。
就在您调用mapPartitions或map之后,它们接受一个操作数据的函数。它基本上每次发送块作为星火Row实体的列表。
在这里阅读更多关于mapPartitions或map的信息:https://sparkbyexamples.com/spark/spark-map-vs-mappartitions-transformation/
https://stackoverflow.com/questions/71341471
复制相似问题