【问题标题】:Read spark dataset only first n columns仅读取 spark 数据集的前 n 列
【发布时间】:2018-10-12 04:00:38
【问题描述】:

我有一个包含超过 5000 列的数据集,并且在尝试读取数据集时抛出了 OutOfMemoryException,即使限制为 10 行也是如此。 cause of exception 上还有另一篇文章,所以我只想阅读前 n 列以避免错误。 我找不到执行此操作的 api 调用,并且只能使用 headlimit 限制行。 有没有办法限制前几列?谢谢。

【问题讨论】:

  • 你到底做了什么(代码)?

标签: apache-spark apache-spark-sql


【解决方案1】:

鉴于您的数据集是ds,您可以将第一列n 提取到一个数组中:

val n = 2
val firstNCols = ds.columns.take(n)

然后从数据集中只选择这些列:

ds.select(firstNCols.head, firstNCols.tail:_*)

【讨论】:

  • 谢谢,这有帮助。
猜你喜欢
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-26
  • 1970-01-01
相关资源
最近更新 更多