【发布时间】:2021-02-11 19:36:08
【问题描述】:
我在名为“source_data”的相对文件夹中有 2 个 JSON 文件
“source_data/data1.json”
{
"name": "John Doe",
"age": 32,
"address": "ZYZ - Heaven"
}
“source_data/data2.json”
{
"userName": "jdoe",
"password": "password",
"salary": "123456789"
}
我使用以下 PySpark 代码创建了 DataFrame:
from pyspark.sql import SparkSession
spark = SparkSession \
.builder \
.appName("Python Spark SQL basic example") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
df = spark.read.json("source_data")
print(df.head())
输出:
df.head(10)
[行(姓名='John Doe',年龄=32,地址='ZYZ - 天堂',用户名=无,密码=无,薪水=无), 行(姓名=无,年龄=无,地址=无,用户名='jdoe',密码='密码',薪水='123456789')]
现在我想通过删除 'None' 类型的列值来创建可变数量的 DataFrame,如下所示:
df1.head()
[Row(name='John Doe', age=32, address='ZYZ - Heaven']
和,
df2.head()
[行(用户名='jdoe',密码='密码',薪水='123456789')]
我只是在寻找基于所有或任何列删除整行的解决方案
有什么方法可以实现我想要的吗?
TIA
【问题讨论】:
-
JSON 文件位于同一文件夹中。这只是我发布的示例,实际文件夹有数百万个文件。
-
您可以在初始数据帧上进行选择以获取所需的列,然后过滤以删除具有 null 或 None 值的行
标签: pyspark apache-spark-sql pyspark-dataframes