首页 > 解决方案 > 如何从 Azure Databricks Spark 中的 DataFrame 获取特定的行和列

问题描述

我在 Azure Databricks 中有一个 DataFrame,看起来像

Col a| Col b
------------
Marc | Taylor
John | McC
Bill | Gates

我想提取一个特定的列和行。我知道如何提取特定列并将其分配给变量

result = ds.select(Col a)

但是如何在这行代码中获取第 2 行?

标签: pythonazureapache-sparkapache-spark-sqldatabricks

解决方案


您可以使用monotonically_increasing_id()函数生成带有序列号的新列,然后使用filter函数在行中过滤

from pyspark.sql.functions import *
ds.withColumn('sn', monotonically_increasing_id())\
    .filter(col('sn') == 1)\
    .drop('sn')\
    .show(truncate=False)

这会给你

+-----+-----+
|Col a|Col b|
+-----+-----+
|John |McC  |
+-----+-----+

注意:monotonically_increasing_id 会生成递增的订单号,但不保证生成从0开始的序列号。

总而言之,filter()函数select()/where()是从数据框中选择行的两种方法

我希望答案有帮助


推荐阅读