我们可以在数据框 spark scala 中拥有的最大列数

Posted

技术标签:

【中文标题】我们可以在数据框 spark scala 中拥有的最大列数【英文标题】:maximum number of columns we can have in dataframe spark scala 【发布时间】:2017-06-15 02:52:18 【问题描述】:

我想知道我可以在数据框中拥有的最大列数,在维护数据框中的列数方面是否有任何限制。 谢谢。

【问题讨论】:

【参考方案1】:

省略您的详细信息,答案是是的,Apache Spark 中的列数有大小限制。

从理论上讲,这个限制取决于平台和每列元素的大小。

不要忘记 Java 受限于 JVM 的大小,而 executor 也受限于该大小 - Java largest object size in Heap.

我会回去参考这个Why does Spark RDD partition has 2GB limit for HDFS?,它指的是 HDFS 对块/分区大小的限制。

所以实际上有很多限制要考虑。

这意味着您可以轻松找到硬限制(Int.MaxValue par ex.),但更重要的是,Spark 仅适用于较长且相对较细的数据。 (如 pault 所述)。

最后,您需要记住,从根本上说,您不能在执行程序/分区之间拆分单个记录。并且有许多实际限制(GC、磁盘 IO)使得非常宽的数据不切实际。更不用说一些已知的错误了。

注意:我提到了@pault 和@RameshMaharjan,因为这个答案实际上是我们讨论的成果。 (以及来自其他answer 的@zero323 评论)。

【讨论】:

我希望这能做到@RameshMaharjan 你觉得@pault 怎么样? 目前没有收到通知,但我喜欢这样。我还发布了指向此处的另一个问题的链接。 这很棒:) 谢谢@RameshMaharjan

以上是关于我们可以在数据框 spark scala 中拥有的最大列数的主要内容,如果未能解决你的问题,请参考以下文章

在 Spark Scala 中加入后创建嵌套数据

在 spark scala 中对数据框的每一列进行排序

Spark / Scala如何编写一个复杂的查询来遍历数据框并添加一列

Spark 中的数据框比较:Scala

在 scala spark 数据框中提取时间间隔

使用数据框的子集和 spark/scala 中的两个特定字段过滤数据框 [关闭]