python - 如何从 Azure Databricks Spark 中的 DataFrame 获取特定的行和列
问题描述
我在 Azure Databricks 中有一个 DataFrame,看起来像
Col a| Col b
------------
Marc | Taylor
John | McC
Bill | Gates
我想提取一个特定的列和行。我知道如何提取特定列并将其分配给变量
result = ds.select(Col a)
但是如何在这行代码中获取第 2 行?
解决方案
您可以使用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()
是从数据框中选择行的两种方法
我希望答案有帮助
推荐阅读
- cmake - 单独构建第二个可执行文件
- c# - 用任务替换 BackGroundWorker
- php - 使用 with() 语句的 Laravel 查询
- lyft-api - Lyft OAuth 无法解析用户和应用程序数据
- drag-and-drop - GTK# TreeView -- 从不接收事件?
- git - 如何使用 sourceTree 推送?
- python - 使用 python 从 Oracle 到文本文件的 Blob 数据
- python - 这个 None 列表来自哪里?
- jquery - 如何获取特定文本
- jQuery中的元素?
- c++ - CPU 如何提供 memory_order_acquire 保证?