gpt4 book ai didi

python - 如何将多列添加到 pyspark aws emr 中的现有数据帧?

转载 作者:行者123 更新时间:2023-12-01 00:39:53 26 4
gpt4 key购买 nike

我有这样的数据框

Row(id='123456', name='计算机科学', class='科学')

我的数据框中有大约 1000 行。

现在我有这样的功能

def parse_id(id):
id = somestuff
return new_id

对于每一列,我都有解析函数,例如 parse_nameparse_class

我想将这些函数应用于每个数据帧行,以便它提供新列,例如 new_id、'new_name'、'new_class'

因此生成的数据框将类似于

Row(id='123456', name='计算机科学', class='科学', new_id='12345668688', new_name='计算机科学新', new_class='科学新')

我该怎么做

最佳答案

我建议您了解一下 Spark 中 UDF 的概念,例如:这篇博文https://changhsinlee.com/pyspark-udf/概念描述得很好,并且有足够的例子。

对于您的问题,我们假设您的输入数据帧位于变量 df 中,那么此代码应该可以解决您的问题:

import pyspark.sql.functions as f
import pyspark.sql.types as t

parse_id_udf = f.udf(parse_id, t.StringType())
parse_name_udf = f.udf(parse_name, t.StringType())
parse_class_udf = f.udf(parse_class, t.StringType())

result_df = df.select(f.col("id"), f.col("name"), f.col("class"),
parse_id_udf(f.col("id")).alias("new_id"),
parse_name_udf(f.col("name")).alias("new_name"),
parse_class_udf(f.col("class")).alias("new_class"))

关于python - 如何将多列添加到 pyspark aws emr 中的现有数据帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57442330/

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