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

时间:2019-03-28 20:08:55

标签: pyspark apache-spark-sql pyspark-sql databricks

这是我的火花代码。它工作正常并返回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)

3 个答案:

答案 0 :(得分:3)

这是替代方法:

df.first()['column name']

它将为您提供所需的输出。您可以将其存储在变量中。

答案 1 :(得分:1)

我认为您正在寻找collect。这样的事情应该会为您带来价值:

df.collect()[0]['count(DISTINCT AP)']

假设列名称为'count(DISTINCT AP)'

答案 2 :(得分:1)

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