繁体   English   中英

如何在Azure Databricks Spark中从DataFrame获取特定的行和列

[英]How to get a specific row and column from a DataFrame in Azure Databricks Spark

我在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()函数是从数据框中选择行的两种方法

我希望答案是有帮助的

我可以使用python获取值:

df_sample = yourDataFrame.select(collect_list("Col b").alias("a")) value = df_sample.select(col("a").getItem(1).alias("x")) display(value)

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM