【发布时间】:2017-04-25 15:59:55
【问题描述】:
我看到这里发布的问题与我的类似,但在尝试一些可接受的答案时,我的代码中仍然出现错误。我有一个包含三列的数据框——创建的 _at、文本和单词(这只是文本的标记化版本)。见下文:
现在,我有一个公司列表['Starbucks', 'Nvidia', 'IBM', 'Dell'],我只想保留文本中包含上述这些词的行。
我尝试了一些方法,但没有成功:
small_DF.filter(lambda x: any(word in x.text for word in test_list))
返回:TypeError:条件应该是字符串或列
我尝试创建一个函数并使用foreach():
def filters(line):
return(any(word in line for word in test_list))
df = df.foreach(filters)
这会将 df 变成 'Nonetype'
最后一个我试过了:
df = df.filter((col("text").isin(test_list))
这会返回一个空数据框,这很好,因为我没有收到任何错误,但显然不是我想要的。
【问题讨论】:
标签: python pyspark spark-dataframe