我开始通过摆弄RDD来熟悉Spark,但是我尝试使用DataFrames并且我不太确定哪些有用,哪些与DataFrames过滤器功能无关。
例如,我想通过比较DataFrame中的列是否等于字符串列表中的任何字符串来过滤我的DataFrame。
使用RDD,这就是我所做的:
dataRDD.filter(lambda s: any(substring in s['DATE'] for substring in dateList))
这似乎工作正常。但是当我尝试使用与DataFrame相似的东西时:
lambdaDF = df.filter(any(substring in df.DATE for substring in hours1))
我最终收到此错误:
ValueError:无法将列转换为bool:请使用'&'为'和',' |'对于'或','〜'因为'不是'在构建DataFrame布尔表达式时。
我想我还没有完全理解RDD过滤器函数和DataFrame过滤器函数之间的区别,以及我可以用它们做些什么。
感谢任何帮助或建议。谢谢!