pyspark-dataframes - 如何使用pyspark从spark df中删除空列
问题描述
我在每一行都有一个带有空值的df,如
col1 col2 col3 col4
|--------|---------|---------|-------------|
|null | null | foo | null |
|--------|---------|---------|-------------|
| null | bar | null | null |
|--------|---------|---------|-------------|
| null | null | null | kid |
|--------|---------|---------|-------------|
| orange | null | null | null |
|--------|---------|---------|-------------|
我需要删除所有空列,输出 df 应该是单行,因为
col1 col2 col3 col4
|--------|---------|---------|-------------|
|orange | bar | foo | kid |
|--------|---------|---------|-------------|
我应该怎么做才能达到预期的效果?谢谢
解决方案
这是我的测试数据框的示例:
+----+----+----+----+
|a |b |c |d |
+----+----+----+----+
|null|null|cc |null|
|null|null|null|dc |
|null|bb |null|null|
|aa |null|null|null|
+----+----+----+----+
和测试代码:
from pyspark.sql.functions import col, max
df = spark.read.option("header","true").option("inferSchema","true").csv("test.csv")
cols = [max(col(c)).alias(c) for c in df.columns]
df.groupBy().agg(*cols).show(10, False)
给出结果:
+---+---+---+---+
|a |b |c |d |
+---+---+---+---+
|aa |bb |cc |dc |
+---+---+---+---+
我用过groupBy
andmax
函数的地方。
推荐阅读
- angular - 当值不符合正则表达式时,Ionic 3 显示表单错误
- resize - 如何通过门户增加 Azure 中的磁盘大小?
- django - Celery - Django - '“结果”列中的空值违反非空约束'
- javascript - 从大对象中添加和删除数组
- android - EditText 不显示
- session - 无法获取大猩猩会话。按键值
- c++ - 用户定义的转换不能在 C++ 中使用 static_cast
- javascript - 为什么在 domready 上的 document.write(x) 中没有显示字符串末尾的实体转义?
- android - NullpointerExpection returned when back pressed
- amazon-web-services - 在 beanstalk 部署期间 Nginx 配置覆盖