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

在spark中,如何在不扫描spark中整个分区的情况下查看n行数据

呼延承平
2023-03-14

我有一个蜂巢拼花桌(s3顶部的外桌),其中包含6k隔板。在数据探索中,我们希望查看示例数据,例如1/2/10记录,而不执行任何转换或操作。

有没有办法只限制一个分区,并限制/显示n条记录,而不是通过6k分区(如果集群很小,只打印10行需要大量时间)。我考虑过mapPartitionsWithIndex,但它仍然会遍历所有分区

def mpwi(index: Int, iter: Iterator[Row]): Iterator = {
  if (index == 1) iter
  else Iterator()
}

共有1个答案

贡念
2023-03-14

您应该尝试限制。例如:

val df = spark.sql("select * from your_table")
df.limit(10).show // Retrieves only 10 rows

这应该比加载完整表更有性能。如果您没有获得预期的性能提升,请在此处粘贴逻辑/物理查询计划,以便我们分析它。您可以使用df.explain(true)执行此操作

 类似资料:
  • 我必须在WIndows工作站上执行此操作

  • 我需要spark(scala)数据帧分区方面的帮助。我需要按一个键列划分成n个分区,与同一个键相关的所有行都应该在同一个分区中(即,键不应该分布在整个分区中) 注意:我的钥匙可能有几百万 例如:假设我有下面的数据框 等等等等 正如您所看到的,许多值共享相同的键。我想将此数据集划分为"n"个分区,其中相同的键应该在相同的分区中,并且键不应该分布在分区之间。多个键驾驶室位于同一分区,键不可排序。 提前

  • 假设我有两个数据帧,df1和df2。df1和df2都包含“id”列。我想过滤df1,这样得到的df,df1prime,有 只有在df1中找到的ID 在df2中没有找到所有ID 而不使用任何连接。我该怎么做?返回RDDs而不是DFs会有帮助吗?pyspark和scala响应都受到欢迎。 谢谢! 编辑:我想保留df1中的所有行

  • 在Spark中,我有两个PairRDD(我们称之为A和B),每个由n个分区组成。我想根据它们的密钥加入这些RDD。 两个RDD都是一致分区的,也就是说,如果键x和y在RDD A中的同一个分区中,它们也在RDD B中的同一个分区中。对于RDD A,我可以保证分区是使用特定的分区器完成的。但是对于RDD B,分区索引可能不同于RDD A(RDD B是一些遗留库的输出,如果不是绝对必要的话,我不愿意碰它

  • 我有这个java代码,其中火花UDF将行作为输入并返回行。还有一个广播变量,它是哈希映射。 UDF所做的就是检查广播HashMap是否包含rowKey,如果包含,则返回一个新行,其中包含来自输入行的一些现有值和来自广播HashMap的一些更新值。如果没有,则按原样返回输入行。我这样做是因为我想根据HashMap中的值更新行列值。这是代码: 广播变量 UDF定义 UDF注册 UDF来电 我有以下问题

  • 我必须更新历史数据。说到更新,我的意思是向S3上的现有分区添加新行,有时是新列。 当前分区按日期实现:。为了避免每个分区有太多对象,我执行以下操作来维护单个对象/分区: 存在这样一种情况,我必须添加具有以下列值的某些行: 这意味着此路径中的文件(S3对象):