将多个表读取到同一数据帧



我将多个表读取到同一数据帧

i = 0
while (condition): 
        dfMoreData = sqlContext.read.parquet("data" + i + ".parquet")
        # process dfMoreData
        i = i + 1

我遇到关于内存不足的异常每次迭代后,我应该以及如何清除dfMoreData?

要修复未将不可变值分配给任何集合的代码,一种方法是使用regex或路径过滤器

sqlContext.read.parquet("data*.parquet");

使用unionAll 减少数据帧

val df = (1 to 10) // assuming filenames are 1 to 10
  .map("data" + _ + ".parquet")
  .map(sqlContext.read.parquet(_))
  .reduce(_ unionAll _)

对于内存不足的错误,我认为集群需要有足够的内存来加载数据。之后,您可以尝试使用MEMORY_AND_DISK选项进行持久化,然后执行其余操作。

相关内容

  • 没有找到相关文章

最新更新