[英]How to filter on a string numpy array column in pyspark
我有一個 pyspark dataframe
import pandas as pd
foo = pd.DataFrame({'col':[['a_b', 'bad'],['a_a', 'good'],[]]})
我想過濾掉col
list
中'bad'
所有行
我試圖先創建一個二進制列,然后過濾這個:
from pyspark.sql import functions as f
foo = foo.withColumn('at_least_one_bad', f.when(f.col("col").array_contains("bad"),f.lit(1)).otherwise(f.lit(0)))
但我得到一個錯誤
類型錯誤:“列”object 不可調用
有任何想法嗎?
您的語法略有偏差 - 請嘗試以下代碼:
import pyspark.sql.functions as f
foo2 = foo.withColumn('at_least_one_bad', f.array_contains('col', 'bad').cast('int'))
foo2.show()
+-----------+----------------+
| col|at_least_one_bad|
+-----------+----------------+
| [a_b, bad]| 1|
|[a_a, good]| 0|
| []| 0|
+-----------+----------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.