在 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 API 和 groupBy
它为您提供了一种将每个 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 函数即可重新创建相同的行为。
我正在尝试用 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 API 和 groupBy
它为您提供了一种将每个 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 函数即可重新创建相同的行为。