使用scala在databricks中循环

vuktfyat  于 2021-05-22  发布在  Spark
关注(0)|答案(0)|浏览(288)

我需要循环一个笔记本,以便为在snowflake中加载的多个表创建Dataframe。
以下是迄今为止的代码:

import org.apache.spark.sql.DataFrame
import net.snowflake.spark.snowflake.Utils.SNOWFLAKE_SOURCE_NAME

val df = spark.sql("select * from myschema.table1")

df .write
    .format("snowflake")
    .options(options)
    .option("dbtable", "table1")
    .mode(SaveMode.Overwrite)
    .save()

我想用tablename作为参数,以动态的方式为另外10个表运行这个函数,但是我很难使用循环(for)来实现这个函数。
可能是这样的:

For each table in table_list (table1,table2...)
run
    val df = spark.sql("select * from myschema.table")
    df .write
        .format("snowflake")
        .options(options)
        .option("dbtable", "table")
        .mode(SaveMode.Overwrite)
        .save()

后来编辑想出了解决办法:

for (table <- tables)
{ val df = spark.sql(s"""select * from schema.$table""")
  df.write
    .format("snowflake")
    .options(options)
    .option("dbtable", s"""$table""")
    //.mode(SaveMode.Overwrite)
    .save()
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题