使用databricks笔记本,我可以从databricks连接到“ snowflake”,并使用“ scala”将内容写入雪花表中,但不能使用“ python”
我已经在databricks中创建了这两个库,这有助于在databricks和雪花之间建立连接。 “ snowflake-jdbc-3.6.8”和“ spark-snowflake_2.11-2.4.4-spark_2.2”。 这里的最终目标是使用数据块(用于机器学习SPARK)并在数据块和雪花之间来回移动数据。
这是代码,我正在尝试将“数据框的内容写入雪花”
将数据加载到数据框
df1 = spark.read.format('csv')。option(“ header”,“ true”)。\ option(“ inferSchema”,“ true”)。load(“ dbfs:/ databricks-datasets / airlines / part-00000”) display(df1)
使用机密管理器获取Snowflake用户的登录名和密码。
user = dbutils.secrets.get(scope =“ jdbc”,key =“ snowflake_username”) 密码= dbutils.secrets.get(scope =“ jdbc”,key =“ snowflake_password”)
雪花连接选项
options = dict(sfUrl =“ https:// snowflake_username .snowflakecomputing.com”, sfUser =用户, sfPassword =密码, sfDatabase =“ my_database”, sfSchema =“ PUBLIC”, sfWarehouse =“ my_warehouse”)
SNOWFLAKE_SOURCE_NAME =“ net.snowflake.spark.snowflake”
将数据框的内容写入雪花
df1.write.format(SNOWFLAKE_SOURCE_NAME)\ .options(**选项)\ .option(“ dbtable”,“ datafromspark”)\ .save()
错误: java.sql.SQLException:找不到适用于jdbc的驱动程序:snowflake:// https:// snowflake_username .snowflakecomputing.com
答案 0 :(得分:0)
我发现了错误: 在第3步中,无需提及“ https://” 即sfUrl =“ https://snowflake_username.snowflakecomputing.com”#输入错误 sfUrl =“ snowflake_username.snowflakecomputing.com”#工作正常