簡體   English   中英

從列表列表中刪除一個列表 PySpark DataFrame

[英]Remove a list from a list of lists in PySpark DataFrame

我有以下 dataframe,帶有一個列表列,其中包含一個列表列表。 在某些特定情況下,此列表包含一個唯一列表,其中僅包含空字符串。

+--+---------------+
|id|list           |
+--+---------------+
|1 |[[1, a],[2, b]]|
|2 |[[,]]          |

我想過濾掉這個列表,所以我有以下內容:

+--+---------------+--------------+
|id|list           |result        |
+--+---------------+--------------+
|1 |[[1, a],[2, b]]|[[1, a],[2, b]|
|2 |[[,]]          |[]            |

我嘗試了以下方法:

data_frame.withColumn("result", array_remove("list", ["",""]))

但我有以下錯誤:

An error occurred while calling z:org.apache.spark.sql.functions.array_remove. Unsupported literal type class java.util.ArrayList [, ]

有什么建議或想法嗎?

這里有點棘手——我認為使用原始 Spark SQL 查詢是合適的:

df2 = data_frame.withColumn('result', F.expr("array_remove(list, array('',''))"))

df2.show()
+---+----------------+----------------+
| id|            list|          result|
+---+----------------+----------------+
|  1|[[1, a], [2, b]]|[[1, a], [2, b]]|
|  2|          [[, ]]|              []|
+---+----------------+----------------+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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