从列表中删除空字符串(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 数据帧的输出中删除空字符串