【发布时间】:2019-09-17 11:59:27
【问题描述】:
我这里有一个 pyspark 脚本行,
df_output = df.select("*",$checkcol)
df_output.show()
通过硬编码变量可以正常工作, 但是当参数化时,它会抛出一个错误,
pyspark.sql.utils.AnalysisException: '无法解析\'`"*", F.....
其中checkcol 是一个变量,其值如下所示,
checkcol -
F.when(F.col("colA")=='null',"Yes").otherwise(date_validation_udf("colA")).alias("colA_DateCheck"),
F.when(F.col("colB")=='null',"Yes").otherwise(date_validation_udf("colB")).alias("colB_DateCheck"),F.when(F.col("colC")=='null',"Yes").otherwise(date_validation_udf("colC")).alias("colC_DateCheck"),
F.when(F.col("colD")=='null',"Yes").otherwise(num_check_udf("colD")).alias("colD_NumCheck"),F.when(F.col("colE")=='null',"Yes").otherwise(num_check_udf("colE")).alias("colE_NumCheck"),
F.when(F.col("colF")=='null',"Yes").otherwise(num_check_udf("colF")).alias("colF_NumCheck"),F.when(F.col("colG")=='null',"Yes").otherwise(num_check_udf("colG")).alias("colG_NumCheck")
【问题讨论】:
-
$checkcol的语法是什么?是壳吗? -
需要在 pyspark 脚本中执行它..通过在其中调用该变量..
-
$语法不是 python。假设checkcol是list,我认为你所追求的是df_output = df.select(*[df.columns + checkcol]) -
不是字符串.. df_w_output = df.select(*[df.columns + CheckCol]) TypeError: can only concatenate list (not "str") to list
标签: python pyspark pyspark-sql pyspark-dataframes