在 Pyspark 中使用 pandas 函数

Using pandas functions with Pyspark

我正在尝试用 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 中我得到一行三个元素) 当验证DataFrame的列的条件时使用第二个函数

是否有使用 Pyspark 数据帧应用它们的方法?

如果您想利用 pandas 功能,一种方法是使用 - Pandas APIgroupBy

它为您提供了一种将每个 groupBy 集视为 pandas 数据框的方法,您可以在其上实现您的功能。

然而,自从它的 Spark 以来,模式实施是非常必要的,因为您还将阅读 link 中提供的示例

可以找到实现示例here

对于琐碎的任务,例如反转字符串选择内置的 Spark 函数,否则 UDF 的

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

以下是您执行任务所需的函数:

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

只需组合这些 spark 函数即可重新创建相同的行为。