我们在数据框Spark Scala中可以拥有的最大列数

ven*_*ata 3 scala dataframe apache-spark rdd

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

eli*_*sah 5

为您省去细节,答案是肯定的,Apache Spark中的列数大小受到限制。

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

不要忘记Java受JVM大小的限制,而执行程序也受该大小的限制 -Java在Heap中的最大对象大小

我会回头参考一下,为什么Spark RDD分区的HDFS限制为2GB?这是指HDFS对块/分区大小的限制。

因此,实际上有很多限制要考虑。

这意味着您可以轻松地找到一个硬限制(例如,Int.MaxValue),但更重要的是,Spark仅可缩放较长且相对较薄的数据。(如保险柜中所述)。

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

注意:我提到@pault和@RameshMaharjan,因为此答案实际上是我们进行讨论的结果。(还有ofc @ zero323,他从其他答案中得到的评论)。