【发布时间】:2017-06-15 02:52:18
【问题描述】:
我想知道我可以在数据框中拥有的最大列数,在维护数据框中的列数方面是否有任何限制。 谢谢。
【问题讨论】:
标签: scala apache-spark dataframe rdd
我想知道我可以在数据框中拥有的最大列数,在维护数据框中的列数方面是否有任何限制。 谢谢。
【问题讨论】:
标签: scala apache-spark dataframe rdd
省略您的详细信息,答案是是的,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 评论)。
【讨论】: