当前位置: 首页 > 知识库问答 >
问题:

从spark数据帧获取特定行

柴默
2023-03-14

在scala火花数据帧中是否有df[100, c("列")]的替代方案。我想从火花数据帧的列中选择特定的行。例如,在R等效代码中的第100行

共有3个答案

罗飞宇
2023-03-14

在PySpark中,如果你的数据集很小(可以放入驱动程序的内存),你可以做

df.collect()[n]

其中,df是数据帧对象,n是感兴趣的行。在得到所说的行后,您可以执行行。myColumn行[“myColumn”]以获取API文档中详细说明的内容。

司寇高洁
2023-03-14

这就是我在Scala中实现相同的方法我不确定它是否比有效答案更有效但是它需要更少的编码

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

val myRow7th = parquetFileDF.rdd.take(7).last
东方富
2023-03-14

首先,您必须了解DataFrames是分布式的,这意味着您不能以典型的程序方式访问它们,您必须首先进行分析。虽然,您正在询问Scala,但我建议您阅读Pyspark文档,因为它的示例比任何其他文档都多。

然而,继续我的解释,我会使用RDDAPI的一些方法,因为所有DataFrames都有一个RDD属性。请看我下面的例子,注意我是如何获得第二条记录的。

df = sqlContext.createDataFrame([("a", 1), ("b", 2), ("c", 3)], ["letter", "name"])
myIndex = 1
values = (df.rdd.zipWithIndex()
            .filter(lambda ((l, v), i): i == myIndex)
            .map(lambda ((l,v), i): (l, v))
            .collect())

print(values[0])
# (u'b', 2)

希望有人给出另一个步骤更少的解决方案。

 类似资料:
  • 有可能获得数据帧中每个唯一项的最后一个条目吗?我有一个这样的数据框架: 所以我想得到用户的最后记录,例如数据帧它必须返回, 是否可以按日期获取最后一条记录。 谢谢

  • 如何将spark数据框中的所有列名放入Seq变量中。 输入数据 我需要使用scala编程将所有列名存储在变量中。我尝试了如下方法,但不起作用。 预期输出:

  • 我正在使用: Python 3.6.8 火花2.4.4 我在spark类路径中有以下JAR: http://repo1.maven.org/maven2/com/databricks/spark-redshift_2.11/2.0.1/spark-redshift_2.11-2.0.1.jar http://repo1.maven.org/maven2/com/databricks/spark-a

  • 我正在使用forkify API制作一个配方搜索应用程序。我得到了这样的json(以披萨食谱为例)。我已经做了一个回收和搜索,但食谱本身是作为一个链接提供给该网站的配方(见json中的source_url)。我已经为此制作了一个网络视图,但有一个问题。我需要得到那个源url,并让它与我点击的菜谱匹配。我试图在Rescycler中创建一个额外的元素,小的不可见文本视图,并将source_url放在那

  • 我必须根据特定条件过滤数据帧。如果解决方案考虑使用dplyr,效果更好。 我有这样的数据帧结构 如果列标签包含特定值(例如,3.),不仅要收集该行,还要收集与前一行具有相同sentID和partner值的所有行。 预期结果如下:

  • 假设我有一个相当大的数据集,其形式如下: 我想做的是只根据第一、第三和第四列的值删除重复的行。 在Python中,这可以通过使用指定列来实现。如何在Spark/PySpark中实现相同的功能?