Python 通过Okta身份验证,使用Databricks Snowflake连接器连接到Snowflake
我正试图连接到雪花从Databricks使用火花连接器如前所述。在示例中,使用Snowflake帐户的用户名和密码建立连接。然而,就我而言,我正在通过Okta进行身份验证。我可以看到有一个选项Okta认证连接使用。但是,对于Spark dataframe,我找不到相同的 对于生产管道部署,是否建议使用Okta身份验证 有没有人曾经有过类似的用例或者知道这个设置?我们将非常感谢你的帮助 谢谢,Python 通过Okta身份验证,使用Databricks Snowflake连接器连接到Snowflake,python,apache-spark,pyspark,databricks,snowflake-cloud-data-platform,Python,Apache Spark,Pyspark,Databricks,Snowflake Cloud Data Platform,我正试图连接到雪花从Databricks使用火花连接器如前所述。在示例中,使用Snowflake帐户的用户名和密码建立连接。然而,就我而言,我正在通过Okta进行身份验证。我可以看到有一个选项Okta认证连接使用。但是,对于Spark dataframe,我找不到相同的 对于生产管道部署,是否建议使用Okta身份验证 有没有人曾经有过类似的用例或者知道这个设置?我们将非常感谢你的帮助 谢谢, SuryaSnowflake的Spark连接器使用JDBC驱动程序建立与Snowflake的连接,因此S
SuryaSnowflake的Spark连接器使用JDBC驱动程序建立与Snowflake的连接,因此Snowflake的连接参数也适用于Spark连接器 用于启用SSO/联合身份验证的参数。您还可以将此参数设置为Okta端点以进行本机Okta身份验证 下面的代码片段演示如何在利用雪花火花连接器的简单PySpark程序中添加此设置。请注意,您确实需要设置用户和密码,因为这些是必需的参数。如果愿意,可以将这些设置为虚拟值
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkConf, SparkContext
sc = SparkContext("local", "Simple App")
spark = SQLContext(sc)
spark_conf = SparkConf().setMaster('local').setAppName('repro')
sfOptions = {
"sfURL" : "accountname.eu-central-1.snowflakecomputing.com",
"sfAccount" : "accountname",
"sfUser" : "manuel",
"authenticator" : "externalbrowser",
"sfPassword" : "xxx",
"sfDatabase" : "SANDBOX",
"sfSchema" : "PUBLIC",
"sfWarehouse" : "MANUEL_WH",
"tracing" : "ALL",
}
SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"
df = spark.read.format(SNOWFLAKE_SOURCE_NAME) \
.options(**sfOptions) \
.option("query", "select 1 as my_num union all select 2 as my_num") \
.load()
Snowflake的Spark连接器使用JDBC驱动程序建立与Snowflake的连接,因此Snowflake的连接参数也适用于Spark连接器 用于启用SSO/联合身份验证的参数。您还可以将此参数设置为Okta端点以进行本机Okta身份验证 下面的代码片段演示如何在利用雪花火花连接器的简单PySpark程序中添加此设置。请注意,您确实需要设置用户和密码,因为这些是必需的参数。如果愿意,可以将这些设置为虚拟值
from pyspark import SparkConf, SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
from pyspark import SparkConf, SparkContext
sc = SparkContext("local", "Simple App")
spark = SQLContext(sc)
spark_conf = SparkConf().setMaster('local').setAppName('repro')
sfOptions = {
"sfURL" : "accountname.eu-central-1.snowflakecomputing.com",
"sfAccount" : "accountname",
"sfUser" : "manuel",
"authenticator" : "externalbrowser",
"sfPassword" : "xxx",
"sfDatabase" : "SANDBOX",
"sfSchema" : "PUBLIC",
"sfWarehouse" : "MANUEL_WH",
"tracing" : "ALL",
}
SNOWFLAKE_SOURCE_NAME = "net.snowflake.spark.snowflake"
df = spark.read.format(SNOWFLAKE_SOURCE_NAME) \
.options(**sfOptions) \
.option("query", "select 1 as my_num union all select 2 as my_num") \
.load()