我有一个巨大的数据框,其中一列“类别”有一个企业的各种属性,即是否是一个餐厅,洗衣服务,迪斯科舞厅等,我需要的是能够 .filter
Dataframe,以便可以看到包含餐厅的每一行。这里的问题是“categories”是一组字符串,其中一个单元格可能类似于:“餐馆、食物、夜生活”。有什么想法吗(scala[2.10.6]spark[2.0.1]hadoop[2.7.2])
我尝试过sql风格的查询,例如:
val countResult = sqlContext.sql(
"SELECT business.neighborhood, business.state, business.stars, business.categories
FROM business where business.categories == Restaurants group by business.state"
).collect()
display(countResult)
以及
dfBusiness.filter($"categories" == "Restaurants").show()
和
dfBusiness.filter($"categories" == ["Restaurants"]).show()
我想我可能需要迭代每个单元格,但我不知道怎么做。
有什么想法吗?
1条答案
按热度按时间gev0vcfq1#
函数库对于处理
DataFrame
. 在这种情况下,array_contains
应提供您需要的:这将过滤出在中的数组中没有“restaurants”元素的所有行
categories
列。