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

S12*_*000 2 sql apache-spark apache-spark-sql

您好,我将Spark与Python配合使用,我对数据框执行了基本的count(*)查询,如下所示

myquery = sqlContext.sql("SELECT count(*) FROM myDF")
Run Code Online (Sandbox Code Playgroud)

结果是

+--------+
|count(1)|
+--------+
|    3469|
+--------+
Run Code Online (Sandbox Code Playgroud)

如何保存该值以便执行进一步的操作。

例如,将3469除以24 [无论24意味着...]

小智 6

>>> myquery = sqlContext.sql("SELECT count(*) FROM myDF").collect()[0][0]
>>> myquery
3469
Run Code Online (Sandbox Code Playgroud)

这只会让你得到计数。可以在连续查询中转换和使用后面的类型myquery,例如,如果您想在输出中显示整行。

这适用于 pyspark sql。
注意:这会将整行转储到屏幕上。

>>> sqlContext.sql("SELECT * FROM myDF").show(myquery,False)
Run Code Online (Sandbox Code Playgroud)


Art*_*ERA 5

假设您的查询返回dataframe

+-----+
|count|
+-----+
|3469 |
+-----+
Run Code Online (Sandbox Code Playgroud)

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

count = dataframe.first()['count'] 
Run Code Online (Sandbox Code Playgroud)