pfn*_*sel 3 apache-spark apache-spark-sql pyspark
我有一DataFrame列包含一个带有一些空值的列表:
df.select('foo').show(10)
+----------+
|foo |
+----------+
|[,] |
|[bar, baz]|
|[,bar] |
+----------+
Run Code Online (Sandbox Code Playgroud)
我想过滤掉所有空值,即它应该如下所示:
+----------+
|foo |
+----------+
|null |
|[bar, baz]|
|[bar] |
+----------+
Run Code Online (Sandbox Code Playgroud)
我尝试使用array_remove,但无法排除空字符串。
您可以使用过滤方法来做到这一点
df.withColumn("newColumn", expr("filter(foo, elem -> elem != '')")).show
Run Code Online (Sandbox Code Playgroud)
如果您不想保留原始列,可以使用相同的名称:
df.withColumn("foo", expr("filter(foo, elem -> elem != '')")).show
Run Code Online (Sandbox Code Playgroud)
结果(保留两列)
+----------+----------+
| foo| foonew|
+----------+----------+
| [, ]| []|
|[bar, baz]|[bar, baz]|
| [, bar]| [bar]|
+----------+----------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1794 次 |
| 最近记录: |