spark数据框是不是像熊猫一样为每一行提供“行名”?

Posted

技术标签:

【中文标题】spark数据框是不是像熊猫一样为每一行提供“行名”?【英文标题】:Does spark dataframe have a "row name" for each row like pandas?spark数据框是否像熊猫一样为每一行提供“行名”? 【发布时间】:2015-07-27 14:30:57 【问题描述】:

我正在尝试使用 Spark DataFrames 对按行名索引的两个 DataFrames 进行操作。在 pandas 中,我们可以做

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

通过索引(或行名)在 df 中选择两行。如何在 Spark DataFrame 中实现这一点?谢谢。

【问题讨论】:

【参考方案1】:

不,Spark 中没有行索引。 Spark Data Frames 更像是关系数据库中的表,所以如果你想访问特定的行,你必须过滤:

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"))

【讨论】:

感谢 zero323。那我就去过滤吧。 当然。您最接近随机访问的是PairRDD 上的lookup(请参阅我的回答here),但这意味着失去Catalyst 优化器的所有好处

以上是关于spark数据框是不是像熊猫一样为每一行提供“行名”?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据火花数据框中的值的累积总和为每一行分配一个类别?

如何为存在的每一行向 Spark 数据框中添加新列?

为啥我的熊猫数据框选择的形状是错误的

从前一行和特定列值有效地更新熊猫数据框中的 NaN

如何用列表分解熊猫数据框以用相同的ID标记同一行中的那些?

在 RStudio 中,我可以像使用普通 R 数据框一样在 GUI 中直观地预览 Spark 数据框吗?