首页 > 解决方案 > 在 Pyspark 中使用 pandas 函数

问题描述

我正在尝试用 Pyspark 重写我的 Python 脚本(Pandas),但我找不到一种方法来应用我的 Pandas 函数,以提高 Pyspark 函数的效率:

我的功能如下:

def decompose_id(id_flight):
    
    my_id=id_flight.split("_")
    Esn=my_id[0]
    Year=my_id[3][0:4]
    Month=my_id[3][4:6]

return Esn, Year, Month

def reverse_string(string):
  stringlength=len(string) # calculate length of the list
  slicedString=string[stringlength::-1] # slicing 
  return slicedString

我想将第一个函数应用于数据帧的一列(在 Pandas 中,我得到一行三个元素)第二个函数在验证数据帧的一列条件时使用

有没有使用 Pyspark 数据框应用它们的方法?

标签: pythonpandaspysparkbigdatauser-defined-functions

解决方案


您可以将这些函数作为 UDF 应用到 Spark 列,但效率不高。

以下是执行任务所需的功能:

  • reverse: 用它来替换你的函数reverse_string
  • split: 使用是替换my_id=id_flight.split("_")
  • getItem:使用它来获取拆分列表中的项目my_id[3]
  • substr:替换python中的切片[0:4]

只需结合这些 spark 函数来重新创建相同的行为。


推荐阅读