我读了几个表到同一个数据框
i = 0
while (condition):
dfMoreData = sqlContext.read.parquet("data" + i + ".parquet")
# process dfMoreData
i = i + 1
我遇到有关内存不足的例外情况 我应该以及如何在每次迭代后清除dfMoreData?
答案 0 :(得分:0)
要修复未将不可变值分配给任何集合的代码,一种方法是使用正则表达式或路径过滤器
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选项继续执行其余操作。