collect()vs select()。取值火花数据框

时间:2019-12-22 18:06:14

标签: dataframe apache-spark bigdata pyspark-sql

我是pyspark的新手。

我正在尝试使用可能具有数百万甚至更多行的spark数据框来实现价值。

df = spark.sql("select count(*) as item from products where date(create_date) >= '2019-01-01'")
df.show()
+----------+
|   item   |
+----------+
|   1256149|
+----------+

我需要从“ df”数据框中获取项目值。 因此,我尝试使用collect()和select(“ item”)。head()[0]如下:

df.collect()[0][0]
1256149

df.select("item").head()[0]
1256149

还有另一种无需使用collect()或select()即可获取价值的方法。 据我了解,collect()函数占用大量内存。因此,我想知道一种有效的方法。

先谢谢了。

1 个答案:

答案 0 :(得分:-1)

您是否选中了Spark - extracting single value from DataFrame?您可以使用headfirst函数,例如df.first().getInt(0)