小编gaa*_*aan的帖子

当值匹配pyspark中字符串的一部分时,过滤df

我有一个很大的pyspark.sql.dataframe.DataFrame,我想保留(所以filter)列中保存的URL location包含预定字符串的所有行,例如'google.com'.

我试过了,df.filter(sf.col('location').contains('google.com') 但这会抛出一个

TypeError: _TypeError: 'Column' object is not callable'
Run Code Online (Sandbox Code Playgroud)

我该如何绕过并正确过滤我的df?提前谢谢了!

python apache-spark apache-spark-sql pyspark

32
推荐指数
3
解决办法
5万
查看次数

使用Pandas返回嵌套排序数据帧的nlargest

我正在努力研究一个数据框,它列出了大量具有多个过滤级别的数据,如果这有意义的话.所以我的数据现在按字母顺序按州名排序.第二个过滤级别适用于每个县的人口数据.我用过的过滤是df.sort_values().我现在需要提取每个州最高的三个人口县数,我不知道如何追求这个.

所以我的数据看起来像这样(我在这里省略了行索引):

State    County    Population
Alabama  a         100
Alabama  b         50
Alabama  c         40
Alabama  d         5
Alabama  e         1
...
Wyoming  a.51      180
Wyoming  b.51      150
Wyoming  c.51      56
Wyoming  d.51      5
Run Code Online (Sandbox Code Playgroud)

现在我想从我的数据框架中获得每个州最高人口的县.我没有和熊猫一起工作,我最初的猜测是做一个.这样的事情(显然是错误的):

list_l = []
for i in df['State'].unique(): #Get a series with every unique state listed once
    list_l.append(df[(df['State'] == i])).nlargest(3)
return list_l
Run Code Online (Sandbox Code Playgroud)

即使在打字时我知道它并不完全有意义,但我不确定如何更好地解释它.希望有人能提供帮助.

干杯

python pandas

2
推荐指数
1
解决办法
614
查看次数

Pyspark使用.filter()过滤掉空列表

我有一个pyspark数据框,其中一列填充列表,包含条目或只是空列表.我想有效地过滤掉包含空列表的所有行.

filter 返回以下错误:

import pyspark.sql.functions as sf
df.filter(sf.col('column_with_lists') != []) 
Run Code Online (Sandbox Code Playgroud)

也许我可以检查列表的长度并强加它应该> 0(见这里).但是,如果我使用pyspark-sql并且filter甚至允许使用lambda ,我不确定这种语法是如何工作的.

也许要说清楚,我有多列,但想要在一个列上应用上面的过滤器,删除所有条目.链接的SO示例在单个列上进行过滤.

提前致谢!

filter python-2.7 pyspark pyspark-sql

2
推荐指数
1
解决办法
3708
查看次数