【发布时间】:2020-09-16 05:25:08
【问题描述】:
我需要将 where 子句字符串直接传递给输入数据框以过滤输入记录。 带有列名和要过滤的值的 filter_string 将采用以下格式:
Ex 1: "(col('clm1') == '201')"
Ex 2: "(col('clm1') == '101') & (col('dim2') == '201')"
Scenario: If filter_string = "(col('clm1') == '201')" # In the correct format
df_output = df_input.filter(eval(filter_str)
现在,如果不是上述格式,我想编写 python 语法来引发过滤器字符串的异常。我该怎么做?
【问题讨论】:
-
您没有提供实际的 python 代码。如果“什么”不是上述格式?你有多个字符串,你在说哪一个?你能举几个filter_str的例子吗?我看到你使用 eval(),这通常是一个不好的迹象。
-
您可以考虑Ex 1,并且必须编写一些代码来检查以上述格式传递的参数的语法,如果不是我必须引发异常。
标签: python dataframe filter pyspark pyspark-dataframes