从数据块到雪花的连接

时间:2018-08-16 20:59:35

标签: jdbc databricks snowflake-datawarehouse

使用databricks笔记本,我可以从databricks连接到“ snowflake”,并使用“ scala”将内容写入雪花表中,但不能使用“ python”

我已经在databricks中创建了这两个库,这有助于在databricks和雪花之间建立连接。 “ snowflake-jdbc-3.6.8”和“ spark-snowflake_2.11-2.4.4-spark_2.2”。 这里的最终目标是使用数据块(用于机器学习SPARK)并在数据块和雪花之间来回移动数据。

这是代码,我正在尝试将“数据框的内容写入雪花”

  1. 将数据加载到数据框

    df1 = spark.read.format('csv')。option(“ header”,“ true”)。\     option(“ inferSchema”,“ true”)。load(“ dbfs:/ databricks-datasets / airlines / part-00000”) display(df1)

我可以看到数据已经加载到数据框中

  1. 使用机密管理器获取Snowflake用户的登录名和密码。

    user = dbutils.secrets.get(scope =“ jdbc”,key =“ snowflake_username”) 密码= dbutils.secrets.get(scope =“ jdbc”,key =“ snowflake_password”)

  2. 雪花连接选项

    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”

到目前为止没有错误

  1. 将数据框的内容写入雪花

    df1.write.format(SNOWFLAKE_SOURCE_NAME)\     .options(**选项)\     .option(“ dbtable”,“ datafromspark”)\       .save()

错误: java.sql.SQLException:找不到适用于jdbc的驱动程序:snowflake:// https:// snowflake_username .snowflakecomputing.com

1 个答案:

答案 0 :(得分:0)

我发现了错误: 在第3步中,无需提及“ https://” 即sfUrl =“ https://snowflake_username.snowflakecomputing.com”#输入错误      sfUrl =“ snowflake_username.snowflakecomputing.com”#工作正常