我已经找了一段时间了,但还没有找到怎么做的方法。我有一个dataframe,它包含一个表的引用,其中一列包含一个字符串
dataframe schema: name string,lastname string, interests string
我有这样一份兴趣清单:
val sports:List [String] = List("football","basketball","soccer")
我想从我的数据框中过滤所有的人,这些人包含了他们感兴趣的上述运动之一
val peopledata = sqlContext.sql("select * from learning.people")
我试过这样做:
for (sport <- sports)peopledata.filter(peopledata("interests").contains(sport))
但是我问了我工作的公司的一位专业人士,他告诉我他有一个更好更漂亮的方法
2条答案
按热度按时间kxe2p93d1#
使用字符串插值可以解决您的问题:
7cjasjjr2#
执行
collect()
要获取的函数Array[Row]
此数组的结果和筛选器元素的sports.contains()
:peopledata.collect().filter(row => sports contains row.getString(2))
这是你的电话号码interests
架构中的字段。