簡體   English   中英

如何過濾 pyspark 中的字符串 numpy 數組列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM