Dataframe 获取数据帧';s列值的结果为';列';对象不可调用

Dataframe 获取数据帧';s列值的结果为';列';对象不可调用,dataframe,apache-spark,pyspark,apache-spark-sql,Dataframe,Apache Spark,Pyspark,Apache Spark Sql,对于从文件存储读取的流,我试图检查第一行值的第一列是否等于某个字符串。不幸的是,当我以任何方式访问此列时,例如在其上启动.toList(),它会抛出 if df["Name"].iloc[0].item() == "Bob": TypeError: 'Column' object is not callable 我正在从以下位置调用customProcessing函数: df.writeStream\ .format("delta&

对于从文件存储读取的流,我试图检查第一行值的第一列是否等于某个字符串。不幸的是,当我以任何方式访问此列时,例如在其上启动.toList(),它会抛出

    if df["Name"].iloc[0].item() == "Bob":
TypeError: 'Column' object is not callable
我正在从以下位置调用customProcessing函数:

df.writeStream\
  .format("delta")\
  .foreachBatch(customProcessing)\
[...]
在这个函数中,我试图获取值,但是获取数据的方法都不起作用。正在抛出相同的错误

    def customProcessing(df, epochId):
      
      if df["Name"].iloc[0].item() == "Bob":
[...]

是否有可能阅读单曲?或者它是特定于writeStream的,并且我无法在该输入上使用条件?

对于spark数据帧,没有
iloc
——这不是熊猫;也没有索引的概念

如果你想得到第一个项目,你可以尝试

df.select('Name').limit(1).collect()[0][0] == "Bob"

@麦克,谢谢!这很有效。奇怪的是,错误消息并不表明在本例中不支持此iloc。如果你写一个答案,我会把它标记为解决方案。谢谢