spark sql count(\*) 查询存储结果

新手上路,请多包涵

您好,我在 Python 中使用 Spark,我在数据帧上执行了基本计数(*)查询,如下所示

myquery = sqlContext.sql("SELECT count(*) FROM myDF")

结果是

+--------+
|count(1)|
+--------+
|    3469|
+--------+

我怎样才能保存这个值以便执行进一步的操作。

例如将 3469 除以 24 [无论 24 是什么意思…]

原文由 S12000 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 926
2 个回答

鉴于您的查询返回 dataframe 作为

+-----+
|count|
+-----+
|3469 |
+-----+

您需要获取第一(也是唯一)行,然后是其(唯一)字段“计数”

 count = dataframe.first()['count']

原文由 Arthur PICHOT UTRERA 发布,翻译遵循 CC BY-SA 3.0 许可协议

将计数别名为另一个名称并按如下方式使用它会很有用:

         countvar = sqlContext.sql("""SELECT count(*) as cnt FROM
myDF""").first()["cnt"]
        print(countvar/24)

        countvar = sqlContext.sql("""SELECT count(*) as nullcnt FROM
    myDF where id is null""").first()["nullcnt"]
        print(100*(nullcount/countvar))

        countvar = sqlContext.sql("""SELECT  count(distinct(id)) as idcnt
FROM myDF """).first()["idcnt"]
        print(idcnt))

原文由 user2715182 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进