Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将存储在变量中的条件解析为PySpark代码?_Python_Python 3.x_Apache Spark_Pyspark_Apache Spark Sql - Fatal编程技术网

Python 如何将存储在变量中的条件解析为PySpark代码?

Python 如何将存储在变量中的条件解析为PySpark代码?,python,python-3.x,apache-spark,pyspark,apache-spark-sql,Python,Python 3.x,Apache Spark,Pyspark,Apache Spark Sql,我有一个数据帧df和一个字符串变量cond,其中包含一个条件,比如: cond = """F.col('some-column').isin(['some-value'])""" 我需要应用/解析这个条件,它作为文本存储在数据帧df上。我怎样才能做到这一点 我知道如果我稍微修改一下,我可以利用SparkSQL。然而,对于一些即将到来的需求,我更喜欢这种方法。如果可能的话,也就是说。IIUC,直接在数据帧上使用过滤器。 a_list =

我有一个数据帧
df
和一个字符串变量
cond
,其中包含一个条件,比如:

cond = """F.col('some-column').isin(['some-value'])"""
我需要应用/解析这个条件,它作为文本存储在数据帧
df
上。我怎样才能做到这一点


我知道如果我稍微修改一下,我可以利用SparkSQL。然而,对于一些即将到来的需求,我更喜欢这种方法。如果可能的话,也就是说。

IIUC,直接在数据帧上使用过滤器。

a_list = [1, 2 3]
df = df.filter(F.col("col_name).isin([a_list]))
根据理解更新答案:) 多亏了他的投入,这比我想象的要容易

cond = """F.col('some-column').isin(['some-value'])"""

df = df.filter(eval(cond))

这我知道。问题是,我得到的条件是变量中的字符串。我必须将其应用于数据帧。比如说,df.filter(magic_func(cond))更新了答案-你能检查一下吗?如果您希望获得相同的批准和投票,我们将不胜感激。。提前谢谢!你试过了吗?谢谢!成功了!使用评估方法通常意味着糟糕的设计。正确的方法是DSK回答。是的。将case语句与expr一起使用也是此类用例的一个很好的解决方法
cond = """F.col('some-column').isin(['some-value'])"""

df = df.filter(eval(cond))