Apache spark 如何从Spark Dataframe中的Row对象获取值?

Apache spark 如何从Spark Dataframe中的Row对象获取值?,apache-spark,pyspark,spark-dataframe,Apache Spark,Pyspark,Spark Dataframe,为了 我明白了 行(平均(计数)=1.666 7) 但当我尝试时: averageCount = (wordCountsDF .groupBy().mean()).head() 我得到以下错误: AttributeError:getFloat ---------------------------------------------------------------------------AttributeError回溯(最近的调用) 最后)在() 1#待办事

为了

我明白了

行(平均(计数)=1.666 7)

但当我尝试时:

averageCount = (wordCountsDF
                .groupBy().mean()).head()
我得到以下错误:

AttributeError:getFloat ---------------------------------------------------------------------------AttributeError回溯(最近的调用) 最后)在() 1#待办事项:替换为适当的代码 ---->2平均计数=(字计数SDF 3.groupBy().mean()).head().getFloat(0) 4. 5打印平均计数

/getattr中的databricks/spark/python/pyspark/sql/types.py(self, 项目)1270提高属性错误(项目)1271
除值错误外: ->1272提高属性错误(项目)1273 1274 defsetattr(自身、键、值):

AttributeError:getFloat


我做错了什么?

我知道了。这将返回以下值:

averageCount = (wordCountsDF
                .groupBy().mean()).head().getFloat(0)

Dataframe行是从NamedTuple(从集合库)继承的,因此,虽然可以像上面所做的那样将它们作为传统元组进行索引,但您可能希望通过其字段的名称来访问它们。毕竟,这是命名元组的要点,而且它对未来的更改也更加健壮。像这样:

averageCount = (wordCountsDF
                .groupBy().mean()).head()[0]
这也适用于:

averageCount = wordCountsDF.groupBy().mean().head()['avg(jobs)']
averageCount = (wordCountsDF
                .groupBy().mean('count').collect())[0][0]
print averageCount