gpt4 book ai didi

apache-spark - Pandas 的等价物适用于pyspark吗?

转载 作者:行者123 更新时间:2023-12-05 07:10:56 24 4
gpt4 key购买 nike

我真的希望能够在 spark 数据帧的整个列上运行复杂的函数,就像我在 Pandas 中使用应用函数所做的那样。

例如,在 Pandas 中,我有一个应用函数,它接受一个像 sub-subdomain.subdomain.facebook.co.nz/somequerystring 这样的杂乱域,并且只输出 facebook.com。

我将如何在 Spark 中执行此操作?

我看过 UDF,但我不清楚如何在单个列上运行它。

假设我有一个如下所示的简单函数,我从 pandas DF 的列中提取日期的不同位:

def format_date(row):
year = int(row['Contract_Renewal'][7:])
month = int(row['Contract_Renewal'][4:6])
day = int(row['Contract_Renewal'][:3])
date = datetime.date(year, month, day)
return date-now

在 Pandas 中我会这样调用它:

df['days_until'] = df.apply(format_date, axis=1)

我可以在 Pyspark 中实现相同的目标吗?

最佳答案

在这种情况下,您可以使用 regexp_extract ( http://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=substring#pyspark.sql.functions.regexp_extract )、regexp_replace ( http://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=substring#pyspark.sql.functions.regexp_replace ) 和 split ( http://spark.apache.org/docs/latest/api/python/pyspark.sql.html?highlight=substring#pyspark.sql.functions.split ) 重新格式化字符串的日期。

它不像定义您自己的函数和像 Pandas 那样使用 apply 那样干净,但它应该比定义 Pandas/Spark UDF 更高效。

祝你好运!

关于apache-spark - Pandas 的等价物适用于pyspark吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61034251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com