使用Databricks笔记本,我能够从Databricks连接到'snowflake'并使用'scala'将内容写入Snowflake表中,但使用'python'无法正常工作。
我已向Databricks添加了两个库,这有助于建立Databricks和Snowflake之间的连接:snowflake-jdbc-3.6.8和spark-snowflake_2.11-2.4.4-spark_2.2。
我的目标是使用Databricks(用于机器学习-Spark)在Databricks和Snowflake之间移动数据。
这是我尝试将DataFrame的内容写入Snowflake的代码:
我已向Databricks添加了两个库,这有助于建立Databricks和Snowflake之间的连接:snowflake-jdbc-3.6.8和spark-snowflake_2.11-2.4.4-spark_2.2。
我的目标是使用Databricks(用于机器学习-Spark)在Databricks和Snowflake之间移动数据。
这是我尝试将DataFrame的内容写入Snowflake的代码:
- 将数据加载到DataFrame中
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")
password = dbutils.secrets.get(scope="jdbc", key="snowflake_password")
- 雪花连接选项:
options = dict(sfUrl="https://***snowflake_username***.snowflakecomputing.com",
sfUser=user,
sfPassword=password,
sfDatabase="my_database",
sfSchema="PUBLIC",
sfWarehouse="my_warehouse")
SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"
目前还没有出现错误
- 将DataFrame的内容写入Snowflake
df1.write.format(SNOWFLAKE_SOURCE_NAME) \
.options(**options) \
.option("dbtable", "datafromspark") \
.save()
这会导致:
**Error :
java.sql.SQLException: No suitable driver found for jdbc:snowflake://https://*snowflake_username*.snowflakecomputing.com**