Apache spark 如何从Spark Dataframe中的Row对象获取值?
为了 我明白了 行(平均(计数)=1.666 7) 但当我尝试时: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#待办事
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