从列表中删除空字符串(Spark Dataframe)[重复]

Posted

技术标签:

【中文标题】从列表中删除空字符串(Spark Dataframe)[重复]【英文标题】:Remove empty string from list (Spark Dataframe) [duplicate] 【发布时间】:2019-12-27 13:12:03 【问题描述】:

当前数据框

+-----------------+--------------------+
|__index_level_0__|        Text_obj_col|
+-----------------+--------------------+
|                1|   [ ,entrepreneurs]|
|                2|[eat, , human, poop]|
|                3|    [Manafort, case]|
|                4|  [Sunar, Khatris, ]|
|                5|[become, arrogant, ]|
|                6|  [GPS, get, name, ]|
|                7|[exactly, reality, ]|
+-----------------+--------------------+

我想从列表中删除那个空字符串。 这是测试数据,实际数据很大,pyspark怎么做呢?

【问题讨论】:

【参考方案1】:

您可以使用udf 来完成此任务:

from pyspark.sql.functions import udf

def filter_empty(l):
    return filter(lambda x: x is not None and len(x) > 0, l)

filter_empty_udf = udf(filter_empty, ArrayType(StringType()))

df.select(filter_empty_udf("Text_obj_col").alias("Text_obj_col")).show(10, False)

在您的样本中的几行上进行了测试:

+------------------+
|Text_obj_col      |
+------------------+
|[entrepreneurs]   |
|[eat, human, poop]|
+------------------+

【讨论】:

以上是关于从列表中删除空字符串(Spark Dataframe)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

concat_ws 从 spark 数据帧的输出中删除空字符串

从列表中的元组中删除空字符串

从字符串列表中删除空字符串

如何删除python列表列表中的''(空字符串)?

从 PySpark DataFrame 中的列表列表中删除列表

如何从列类型列表中删除 pandas DataFrame 中的空值