Spark Scala:根据RDD

时间:2017-08-02 18:06:42

标签: scala apache-spark spark-dataframe rdd

我有一个包含值的rdd,每个值都将传递给函数generate_df(num:Int)以创建数据帧。因此,最后我们将有一个存储在列表缓冲区中的数据帧列表,如var df_list_example = new ListBuffer[org.apache.spark.sql.DataFrame]()

首先,我将使用列表而不是RDD来显示代码和结果:

var df_list = new ListBuffer[org.apache.spark.sql.DataFrame]()

for (i <- list_values) //list_values contains values
{
  df_list += generate_df(i)
}

结果:

  

df_list:   scala.collection.mutable.ListBuffer [org.apache.spark.sql.DataFrame] =   ListBuffer([value:int],[value:int],[value:int])

但是,当我使用对我的用例非常重要的RDD时,我遇到了问题:

var df_rdd_list = new ListBuffer[org.apache.spark.sql.DataFrame]()

//rdd_values contains values
rdd_values.map( i => df_rdd_list += generate_df(i)  ) 

结果:

  

df_rdd_list:   scala.collection.mutable.ListBuffer [org.apache.spark.sql.DataFrame] =   ListBuffer()

基本上,列表缓冲区保持为空,无法存储数据帧,这与我使用值列表而不是值的rdd时不同。使用rdd进行映射对于我的原始用例至关重要。

0 个答案:

没有答案