Как получить определенную строку и столбец из DataFrame в Azure Databricks Spark - PullRequest
0 голосов
/ 26 августа 2018

У меня есть DataFrame в Azure Databricks, который выглядит как

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

Я хотел бы извлечь конкретный столбец и строку.Я знаю, как извлечь конкретный столбец и присвоить его переменной

result = ds.select(Col a)

Но как получить строку номер 2, например, в этой строке кода?

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Я могу получить значение с помощью Python, используя это:

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

надеюсь, это поможет.

0 голосов
/ 26 августа 2018

Вы можете использовать функцию 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() представляют собой два способа выбора строк в кадре данных

Надеюсь, ответ полезен

...