Pyspark 'for'循环未使用 .filter() 正确过滤 pyspark-sql 数据帧



我正在尝试创建一个for循环I,我首先:过滤一个pyspark sql数据帧,然后将过滤后的数据帧转换为panda,对其应用一个函数,并将结果显示在一个名为results的列表中。我的列表包含一系列字符串(这将是数据帧中的id(;我希望for循环在每次迭代中从列表中获得一个字符串,并过滤数据帧中id为该字符串的所有行。样本代码:

results = []
for x in list: 
aux = df.filter("id='x'") 
final= function(aux,"value") 
results.append(final)
results

数据帧是一个时间序列,在循环之外,我应用了aux = df.filter("id='x'")转换,然后函数运行没有问题;问题本身就在循环中。但是,当我执行aux.show((时,它显示一个空的数据帧。数据帧是一个时间序列,在循环之外,我应用了aux = df.filter("id='x'")转换,然后函数运行没有问题;问题本身就在循环中。

有人知道为什么会发生这种情况吗?

尝试下面的代码。CCD_ 3在滤波器表达式中不被替换。

results = []
for x in list: 
aux = df.filter("id = '%s'" % x) 
final= function(aux,"value") 
results.append(final)
results

最新更新