Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将多个表读取到同一数据帧_Python_Apache Spark_Spark Dataframe - Fatal编程技术网

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

Python 将多个表读取到同一数据帧,python,apache-spark,spark-dataframe,Python,Apache Spark,Spark Dataframe,我在同一数据框中读取了多个表 i = 0 while (condition): dfMoreData = sqlContext.read.parquet("data" + i + ".parquet") # process dfMoreData i = i + 1 我遇到关于内存不足的异常 每次迭代后是否应该以及如何清除dfMoreData?要修复未将不可变值分配给任何集合的代码,一种方法是使用regex或path filter sqlCont

我在同一数据框中读取了多个表

i = 0
while (condition): 
        dfMoreData = sqlContext.read.parquet("data" + i + ".parquet")
        # process dfMoreData
        i = i + 1
我遇到关于内存不足的异常
每次迭代后是否应该以及如何清除dfMoreData?

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

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 _)

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

对不起,这种方法从一开始就不正确。因为
dfMoreData
只存在于
范围内。@Yakov如果这回答了你的问题,你能接受吗?