问题描述
我在pyspark中有一个功能,如下所示,其中每个新列都是一个新功能。例如journey_email_been_sent_flag
,journey_opened_flag
,journey_clicked_flag
和journey_transaction_flag
是新功能。我想创建一个函数,如果用户希望获得上述功能之一,则应该能够为用户检索结果。其背后的基本思想是中央存储库中功能的可重用性。有没有一种方法可以动态实现每个功能。
journey_level_revenue_email_open_click = spark.read.parquet(journey_level_revenue_path)
analysis_start_date = "2019-05-06"
def df_ptf_overall(df : DataFrame,startdate : StringType):
ptf_overall1 = df \
.filter(F.col('journey_start_date') >= f"{startdate}") \
.select('bpid','journeyinstanceid','journeyid','journey_start_date','measurement_group','country','email_14days','opened_14days','clicked_14days','testfnemail_14days','testfnopened_14days','testfnclicked_14days','revenue_14days','num_trx_14days','num_items_bought_14days'
)
return ptf_overall1
#display(df_ptf_overall(journey_level_revenue_email_open_click,analysis_start_date))
def df_ptf_overall2(df : DataFrame,startdate : StringType):
ptf_overall2 = df_ptf_overall(df,startdate).filter('measurement_group = "test"') \
.withColumn('journey_email_been_sent_flag',F.when(F.col('email_14days') > 0,F.lit(1)).otherwise(F.lit(0))) \
.withColumn('journey_opened_flag',F.when(F.col('opened_14days') > 0,F.lit(1)).otherwise(F.lit(0))) \
.withColumn('journey_clicked_flag',F.when(F.col('clicked_14days') > 0,F.lit(1)).otherwise(F.lit(0))) \
.withColumn('journey_transaction_flag',F.when(F.col('revenue_14days') > 0,F.lit(1)).otherwise(F.lit(0)))
return ptf_overall2
#display(df_ptf_overall2(journey_level_revenue_email_open_click,analysis_start_date))
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)