首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从spark dataframe获取特定行

从spark dataframe获取特定行
EN

Stack Overflow用户
提问于 2016-02-07 00:59:21
回答 7查看 130.1K关注 0票数 45

scala spark数据帧中有没有df[100, c("column")]的替代品?我想从spark data frame的一列中选择特定的行。例如,上述R等效代码中的100th

EN

回答 7

Stack Overflow用户

发布于 2017-08-29 18:02:01

这就是我如何在Scala中实现同样的目标。我不确定它是否比有效答案更有效,但它需要更少的编码

val parquetFileDF = sqlContext.read.parquet("myParquetFule.parquet")

val myRow7th = parquetFileDF.rdd.take(7).last
票数 18
EN

Stack Overflow用户

发布于 2019-06-22 08:16:06

在PySpark中,如果数据集很小(可以放入驱动程序的内存中),则可以执行以下操作

df.collect()[n]

其中df是DataFrame对象,n是感兴趣的行。在获得上述行之后,您可以执行row.myColumnrow["myColumn"]来获取内容,如API docs中所述。

票数 13
EN

Stack Overflow用户

发布于 2018-05-21 03:26:38

下面的getrows()函数应该可以获得所需的特定行。

为了完整起见,我写下了完整的代码,以便重现输出。

# Create SparkSession
from pyspark.sql import SparkSession
spark = SparkSession.builder.master('local').appName('scratch').getOrCreate()

# Create the dataframe
df = spark.createDataFrame([("a", 1), ("b", 2), ("c", 3)], ["letter", "name"])

# Function to get rows at `rownums`
def getrows(df, rownums=None):
    return df.rdd.zipWithIndex().filter(lambda x: x[1] in rownums).map(lambda x: x[0])

# Get rows at positions 0 and 2.
getrows(df, rownums=[0, 2]).collect()

# Output:
#> [(Row(letter='a', name=1)), (Row(letter='c', name=3))]
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35243744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档