我是PySpark的新手,我正在尝试运行以下代码,用假名称替换name
列
# !pip install Faker
from faker import Faker
from functools import partial
def synthetic_column(string, faker_function):
return faker_function()
partial_func = partial(synthetic_column, faker_function = Faker().first_name)
spark_df = spark_df.withColumn('name',partial_func(col('name')))
display(spark_df)
产量AssertionError: col should be Column
我在一个整型列上运行相同的代码,但我没有得到这个AssertionError
为什么会这样?我已经尝试过上面提到的解决方案,但没有任何帮助
请告知
不能将python函数直接应用于数据帧。您需要将其转换为UDF。但是,在您的情况下,您可能还需要在所有节点上安装Faker,因为UDF是在本地executor env上执行的,并且它们需要能够在本地executor env上执行导入
但是一旦安装,您的代码只需要导入
udf
并将其应用于您的faker函数相关问题 更多 >
编程相关推荐