最近,我对如何使用sparklyr::spark_read*
有效地将本地文件读入spark感到困惑。因此,我创建了一个for循环,其中每个步骤都将创建占整个数据集1个比例的临时tbl_spark
,表示1天数据,如下所示:
for (i in seq) {
tmp_par <- spark_read_parquet(
sc,
paste0("spark_dataframe_name_",i),
paste0("path",i,"/*.parquet"),
overwrite = T)
table_name <- sdf_bind_rows(table_name, tmp_par)
}
with table_name
以前是通过使用spark_read_parquet
来创建一部分数据集(i = 0)
假设整个数据集将包含30天的数据。我只是想知道sdf_bind*
函数是否会在每个步骤中先加载table_name
然后将rbind
加载到tmp_par
中,这意味着第1天将与第2天绑定在一起,并且这也意味着该内存仅需携带2天的数据就可以绑定到下一步。还是要等到循环结束(i = 30)才能将rbind
的所有30天数据都存储到table_name
中?