代码之家  ›  专栏  ›  技术社区  ›  Markus

Scala中的函数如何返回多个数据帧?

  •  3
  • Markus  · 技术社区  · 8 年前

    我正在编写一个应返回多个数据帧的函数:

    val df1, df2, df3 = getData(spark,df1,df2,df3)
    
    def getData(spark: SparkSession, 
                path1: String, 
                path2: String,
                path3: String) : DataFrame = {
    
      val epoch = System.currentTimeMillis() / 1000
    
      val df1 = spark.read.parquet(path1)
      val df2 = spark.read.parquet(path2)
      val df3 = spark.read.parquet(path3)
    
      df1, df2, df3
    }
    

    然而,我得到的编译错误是 df1, df2, df3 无法返回。

    1 回复  |  直到 8 年前
        1
  •  5
  •   Mahesh Chand    8 年前

    您可以返回元组或数据帧列表:

    例如: 发送数据帧元组

    def getData(spark: SparkSession, 
                path1: String, 
                path2: String,
                path3: String) = {
    //code
    (df1, df2, df3)
    }
    

    发送数据帧列表

    def getData(spark: SparkSession, 
                    path1: String, 
                    path2: String,
                    path3: String) = {
        //code
        List(df1, df2, df3)
        }
    
    推荐文章