为了账号安全,请及时绑定邮箱和手机立即绑定

Dataframe 上的 Pyspark UDF 列

Dataframe 上的 Pyspark UDF 列

FFIVE 2021-06-02 14:24:26
我正在尝试根据某些列的值在数据框上创建一个新列。它在所有情况下都返回 null。任何人都知道这个简单的例子出了什么问题?df = pd.DataFrame([[0,1,0],[1,0,0],[1,1,1]],columns = ['Foo','Bar','Baz'])spark_df = spark.createDataFrame(df)def get_profile():    if 'Foo'==1:        return 'Foo'    elif 'Bar' == 1:        return 'Bar'    elif 'Baz' ==1 :        return 'Baz'spark_df = spark_df.withColumn('get_profile', lit(get_profile()))spark_df.show()   Foo  Bar  Baz get_profile    0    1    0        None    1    0    0        None    1    1    1        None我希望所有行都填写 get_profile 列。我也试过这个:spark_udf = udf(get_profile,StringType())spark_df = spark_df.withColumn('get_profile', spark_udf())print(spark_df.toPandas())达到同样的效果。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信