如何使用 PySpark 从数据框中提取单个(列/行)值?

Cha*_*uad 3 apache-spark-sql pyspark

这是我的火花代码。它工作正常并返回 2517。我想做的就是打印“2517 度”……但我不确定如何将 2517 提取到变量中。我只能显示数据框,但不能从中提取值。听起来超级简单,但不幸的是我被卡住了!任何帮助将不胜感激。谢谢!

df = sqlContext.read.format("csv").option("header", "true").option("inferSchema", "true").option("delimiter", "\t").load("dbfs:/databricks-datasets/power-plant/data")

df.createOrReplaceTempView("MyTable")

df = spark.sql("SELECT COUNT (DISTINCT AP) FROM MyTable")

display(df)
Run Code Online (Sandbox Code Playgroud)

Pat*_*ick 8

我想你正在寻找collect. 像这样的事情应该让你得到价值:

df.collect()[0]['count(DISTINCT AP)']
Run Code Online (Sandbox Code Playgroud)

假设列名是 'count(DISTINCT AP)'


小智 7

这是替代方案:

df.first()['column name']
Run Code Online (Sandbox Code Playgroud)

它会给你想要的输出。您可以将其存储在变量中。


Clo*_*Cho 5

如果你想提取特定行和列中的值:
df.select('column name').collect()[row number][0]
例如df.select('eye color').collect()[20][0]