我想通过运行类似:-
的命令来运行从Spark到Snowflake的查询sparkSession.sql(“ query”);
所以我想了解在创建sparksession本身时可以在哪里指定以下雪花选项。
val defaultOptions = Map(
"sfURL" -> "",
"sfAccount" > "",
"sfUser" -> "",
"sfPassword" -> "",
"sfDatabase" -> "",
"sfSchema" -> "public",
"sfWarehouse" -> ""
)
尽管我知道我可以在火花接头上使用这些选项,如下所示:-
def snowflakedf(sql: String) = {
spark.read
.format("net.snowflake.spark.snowflake")
.options(defaultOptions)
.option("query", sql")
.load()
}
但是我的问题是我必须专门使用spark sql才能运行查询。
谢谢。
答案 0 :(得分:0)
尝试将USING和OPTIONS添加到SQL语句中。之前,我曾使用过此方法从Snowflake数据源在HIVE中创建全局表:
user = "<username>"
password = "<password>"
sf_url="<ACCOUNT>.snowflakecomputing.com"
sf_database="<SF_DB>"
sf_schema="<SF_SCHEMA>"
sf_warehouse="<SF_WF>"
sf_table="<SF_TABLE>"
create_table_str = "CREATE TABLE {0} (ID decimal(38,0))
USING net.snowflake.spark.snowflake
OPTIONS (`sfURL`='{1}',`sfUser`='{2}',`sfPassword`='{3}',`sfDatabase`='{4}',`sfSchema`='{5}',`sfWarehouse`='{6}',`dbtable` = '{7}')"
.format(sf_table, sf_url, user, password, sf_database, sf_schema, sf_warehouse, sf_table )
spark.sql(create_table_str)