我是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()函数占用大量内存。因此,我想知道一种有效的方法。
先谢谢了。
答案 0 :(得分:-1)
您是否选中了Spark - extracting single value from DataFrame?您可以使用head
或first
函数,例如df.first().getInt(0)
。