计算 Python 函数中的每个字段
Evaluate each field in Python function
我正在尝试评估下面 if 语句中的每个字段。
然而,我运行陷入了以下错误:Method col([class java.util.ArrayList])不存在.
我想要实现的目标:我试图在 Python 函数中评估我的数据框中的两个字段 - 姓名和姓氏。在这些字段中,我有 NULL 值。对于每个字段,我想确定是否存在 NULL 值。
我正在加载各种数据集,其中包含应从每个集合中评估的字段。我想将这些字段传递给函数以检查是否存在 NULL 值。
def identifyNull(Field):
Field = ['Name', 'Surname'] - this is an example of what I would like to pass to my function.
for x in Field:
if df.select().filter(col(Field).isNull()).count() > 0:
print(Field)
else:
print('False')
df = 我正在读取的数据的数据框名称。
df结构:
Name
Surname
John
Doe
NULL
James
Lisa
NULL
请注意:我是 Python 和 Spark 的新手。
您正在调用 col(Field)
字段是一个列表。由于您正在遍历字段,请尝试使用 col(x)
。
所以它会是这样的:
for x in Field:
if df.where(F.col('Name').isNull()).count() > 0:
print(x)
else:
print('False')
假设
data = [["John", "Doe"],
[None, "James"],
["Lisa", None]]
Field = ["Name", "Surname"]
df = spark.createDataFrame(data, Field)
df.show()
returns:
+----+-------+
|Name|Surname|
+----+-------+
|John| Doe|
|null| James|
|Lisa| null|
+----+-------+
然后
for x in Field:
if df.select(x).where(x+" is null").count()>0:
print(x)
else:
print(False)
returns:
Name
Surname
我正在尝试评估下面 if 语句中的每个字段。
然而,我运行陷入了以下错误:Method col([class java.util.ArrayList])不存在.
我想要实现的目标:我试图在 Python 函数中评估我的数据框中的两个字段 - 姓名和姓氏。在这些字段中,我有 NULL 值。对于每个字段,我想确定是否存在 NULL 值。
我正在加载各种数据集,其中包含应从每个集合中评估的字段。我想将这些字段传递给函数以检查是否存在 NULL 值。
def identifyNull(Field):
Field = ['Name', 'Surname'] - this is an example of what I would like to pass to my function.
for x in Field:
if df.select().filter(col(Field).isNull()).count() > 0:
print(Field)
else:
print('False')
df = 我正在读取的数据的数据框名称。
df结构:
Name | Surname |
---|---|
John | Doe |
NULL | James |
Lisa | NULL |
请注意:我是 Python 和 Spark 的新手。
您正在调用 col(Field)
字段是一个列表。由于您正在遍历字段,请尝试使用 col(x)
。
所以它会是这样的:
for x in Field:
if df.where(F.col('Name').isNull()).count() > 0:
print(x)
else:
print('False')
假设
data = [["John", "Doe"],
[None, "James"],
["Lisa", None]]
Field = ["Name", "Surname"]
df = spark.createDataFrame(data, Field)
df.show()
returns:
+----+-------+
|Name|Surname|
+----+-------+
|John| Doe|
|null| James|
|Lisa| null|
+----+-------+
然后
for x in Field:
if df.select(x).where(x+" is null").count()>0:
print(x)
else:
print(False)
returns:
Name
Surname