Есть ли у spark dataframe "имя строки" для каждой строки, как у pandas?


Я пытаюсь использовать фреймы данных Spark для работы с двумя фреймами данных, индексируемыми по имени строки. В панд, мы можем сделать

df.loc(['aIndex', 'anotherIndex'])

Для выбора двух строк в df по индексу (или имени строки). Как достичь этого в Spark DataFrame? Спасибо.

1 2

1 ответ:

Нет, индексация строк в Spark отсутствует. Фреймы данных Spark больше похожи на таблицы в реляционной базе данных, поэтому, если вы хотите получить доступ к определенной строке, вы должны отфильтровать:

df = sqlContext.createDataFrame(
    [("Bob", 5), ("Alice", 6), ("Chuck", 4)], ("name", "age"))

df.where("name in ('Bob', 'Alice')")
df.where((df.name == "Bob") | (df.name == "Alice"))