0

我创建了一个数据框 d2 并想应用一个函数来查看它是否为空。我收到错误: “列表”对象没有属性“isEmpty”

import pyspark
from pyspark.sql import SparkSession
from pyspark.sql.types import DecimalType, FloatType, StructType,StructField, StringType, IntegerType 
from pyspark.sql.types import ArrayType, DoubleType, BooleanType
from pyspark.sql.functions import col,array_contains, monotonically_increasing_id, when
from pyspark.sql.window import Window as W
from pyspark.sql import functions as F
from pyspark.sql.types import StructType,StructField 
from pyspark.sql.types import StringType, IntegerType, ArrayType
from pyspark.sql.functions import round, lit


sc = SparkSession.builder.appName('SparkByExamples.com').getOrCreate()

columns2 = ["Java","Python"]
data2 = [("Java", "20000"), ("Hello", "100000"), ("Scala", "3000")]
df2 = sc.createDataFrame(data2).toDF(*columns2)

print(df2.head(1).isEmpty)

在最后一行我得到一个错误。有人能帮我吗?

4

3 回答 3

4

IsEmpty是属于 pyspark DataFrame 的方法。 .head()正在返回文档Row中所写的对象列表。python中的列表对象确实没有调用方法IsEmpty

于 2021-08-23T20:51:48.770 回答
1

在最后一行中,您调用DataFrame.head()它返回一个列表,而不是文档中所写的 DataFrame。

返回:如果 n 大于 1,则返回 Row 列表。如果 n 为 1,则返回单个 Row。

因此,结果isEmpty()是在返回的列表上调用该方法

于 2021-08-23T20:54:17.553 回答
0

df.head(1).isEmpty 不适用于 PySpark。使用这样的东西:

if len(release_df.head(1)) == 0:
       <do something>
于 2021-11-17T20:51:45.693 回答