![](/img/trans.png)
[英]Remove an element from a Python list of lists in 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.